diff -r 000000000000 -r ba25891c3a9e installationservices/swi/source/plan/plan.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installationservices/swi/source/plan/plan.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,156 @@ +/* +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Implementation of the base plan class +* +*/ + + +#include "plan.h" +#include "application.h" +#include "sisuihandler.h" +#include "progressbar.h" +#include "sisregistryfiledescription.h" + +using namespace Swi; + +CPlan::CPlan() + { + } + +EXPORT_C CPlan::~CPlan() + { + delete iApplicationName; + delete iVendorName; + delete iAppInfo; + delete iApplication; + iFilesToRunBeforeShutdown.ResetAndDestroy(); + iFilesToRunAfterInstall.ResetAndDestroy(); + iAppArcRegFiles.ResetAndDestroy(); + } + +EXPORT_C CPlan* CPlan::NewL() + { + CPlan* self=new (ELeave) CPlan(); + return self; + } + +EXPORT_C void CPlan::SetApplicationInformationL(const TDesC& aApplicationName, const TDesC& aVendorName, const TVersion& aVersion) + { + iApplicationName=aApplicationName.AllocL(); + iVendorName=aVendorName.AllocL(); + SetAppInfoL(TAppInfo(*iApplicationName, *iVendorName, aVersion)); + } +EXPORT_C void CPlan::SetAppInfoL(const TAppInfo& aAppInfo) + { + delete iAppInfo; + iAppInfo=0; + iAppInfo=new(ELeave) TAppInfo(aAppInfo); + } + +EXPORT_C const TAppInfo& CPlan::AppInfoL() const + { + if (!iAppInfo) + { + User::Leave(KErrInstallerLeave); + } + + return *iAppInfo; + } + +EXPORT_C const CApplication& CPlan::ApplicationL() const + { + if (!iApplication) + { + User::Leave(KErrInstallerLeave); + } + return *iApplication; + } + +EXPORT_C void CPlan::SetApplication(CApplication* aApplication) + { + iApplication=aApplication; + } + + +EXPORT_C void CPlan::AddInstallFileForProgress(TInt64 aFileSize) + { + // Increment for file extraction (scaled by file size) + iFinalProgressBarValue+= ProgressBarFileIncrement(aFileSize); + // Increment for file install/copy + iFinalProgressBarValue+= KProgressBarEndIncrement; + } + +EXPORT_C void CPlan::AddUninstallFileForProgress() + { + iFinalProgressBarValue+= KProgressBarUninstallAmount; + } + +EXPORT_C TInt32 CPlan::FinalProgressBarValue() const + { + return iFinalProgressBarValue; + } + +EXPORT_C void CPlan::RunFilesBeforeShutdownL(const CSisRegistryFileDescription& aFileDescription) + { + CSisRegistryFileDescription* fileDescription = CSisRegistryFileDescription::NewLC(aFileDescription); + iFilesToRunBeforeShutdown.AppendL(fileDescription); + CleanupStack::Pop(fileDescription); + } + +EXPORT_C const RPointerArray& CPlan::FilesToRunBeforeShutdown() const + { + return iFilesToRunBeforeShutdown; + } + +EXPORT_C void CPlan::RunFileAfterInstallL(const Sis::CFileDescription& aFileDescription, TChar aDrive, TBool aIsStub) + { + CSisRegistryFileDescription* fileDescription = CSisRegistryFileDescription::NewLC(aFileDescription, aDrive, aIsStub); + iFilesToRunAfterInstall.AppendL(fileDescription); + CleanupStack::Pop(fileDescription); + } + +EXPORT_C const RPointerArray& CPlan::FilesToRunAfterInstall() const + { + return iFilesToRunAfterInstall; + } + +EXPORT_C void CPlan::SetContainsPlugins(TBool aContainsPlugins) + { + iContainsPlugins = aContainsPlugins; + } + +EXPORT_C TBool CPlan::ContainsPlugins() const +{ + return iContainsPlugins; +} + +EXPORT_C void CPlan::AddAppArcRegFileL(const TDesC& aFilename) +{ + HBufC* tmp = aFilename.AllocLC() ; + iAppArcRegFiles.AppendL(tmp); + CleanupStack::Pop(tmp); +} + +EXPORT_C const RPointerArray& CPlan::AppArcRegFiles() const + { + return iAppArcRegFiles; + } + +EXPORT_C void CPlan::ResetAppArcRegFiles() + { + iAppArcRegFiles.ResetAndDestroy(); + } + +