installationservices/swi/source/plan/plan.cpp
changeset 0 ba25891c3a9e
child 25 7333d7932ef7
--- /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<CSisRegistryFileDescription>& 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<CSisRegistryFileDescription>& 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<TDesC>& CPlan::AppArcRegFiles() const
+	{
+	return iAppArcRegFiles;
+	}
+
+EXPORT_C void CPlan::ResetAppArcRegFiles()
+	{
+	iAppArcRegFiles.ResetAndDestroy();
+	}
+	
+