installationservices/swi/source/plan/plan.cpp
changeset 0 ba25891c3a9e
child 25 7333d7932ef7
equal deleted inserted replaced
-1:000000000000 0:ba25891c3a9e
       
     1 /*
       
     2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 * Implementation of the base plan class
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 #include "plan.h"
       
    21 #include "application.h"
       
    22 #include "sisuihandler.h"
       
    23 #include "progressbar.h"
       
    24 #include "sisregistryfiledescription.h"
       
    25 
       
    26 using namespace Swi;
       
    27 
       
    28 CPlan::CPlan()
       
    29 	{
       
    30 	}
       
    31 
       
    32 EXPORT_C CPlan::~CPlan()
       
    33 	{
       
    34 	delete iApplicationName;
       
    35 	delete iVendorName;
       
    36 	delete iAppInfo;
       
    37 	delete iApplication;
       
    38 	iFilesToRunBeforeShutdown.ResetAndDestroy();
       
    39 	iFilesToRunAfterInstall.ResetAndDestroy();
       
    40 	iAppArcRegFiles.ResetAndDestroy();
       
    41 	}
       
    42 
       
    43 EXPORT_C CPlan* CPlan::NewL()
       
    44 	{
       
    45 	CPlan* self=new (ELeave) CPlan();
       
    46 	return self;
       
    47 	}
       
    48 
       
    49 EXPORT_C void CPlan::SetApplicationInformationL(const TDesC& aApplicationName, const TDesC& aVendorName, const TVersion& aVersion)
       
    50 	{
       
    51 	iApplicationName=aApplicationName.AllocL();
       
    52 	iVendorName=aVendorName.AllocL();
       
    53 	SetAppInfoL(TAppInfo(*iApplicationName, *iVendorName, aVersion));
       
    54 	}
       
    55 EXPORT_C void CPlan::SetAppInfoL(const TAppInfo& aAppInfo)
       
    56 	{
       
    57 	delete iAppInfo;
       
    58 	iAppInfo=0;
       
    59 	iAppInfo=new(ELeave) TAppInfo(aAppInfo);
       
    60 	}
       
    61 	
       
    62 EXPORT_C const TAppInfo& CPlan::AppInfoL() const
       
    63 	{
       
    64 	if (!iAppInfo)
       
    65 		{
       
    66 		User::Leave(KErrInstallerLeave);
       
    67 		}
       
    68 	
       
    69 	return *iAppInfo;
       
    70 	}
       
    71 	
       
    72 EXPORT_C const CApplication& CPlan::ApplicationL() const
       
    73 	{
       
    74 	if (!iApplication)
       
    75 		{
       
    76 		User::Leave(KErrInstallerLeave);
       
    77 		}
       
    78 	return *iApplication;
       
    79 	}
       
    80 
       
    81 EXPORT_C void CPlan::SetApplication(CApplication* aApplication)
       
    82 	{
       
    83 	iApplication=aApplication;
       
    84 	}
       
    85 
       
    86 
       
    87 EXPORT_C void CPlan::AddInstallFileForProgress(TInt64 aFileSize)
       
    88 	{
       
    89 	// Increment for file extraction (scaled by file size)
       
    90 	iFinalProgressBarValue+= ProgressBarFileIncrement(aFileSize);
       
    91 	// Increment for file install/copy
       
    92 	iFinalProgressBarValue+= KProgressBarEndIncrement;
       
    93 	}
       
    94 
       
    95 EXPORT_C void CPlan::AddUninstallFileForProgress()
       
    96 	{
       
    97 	iFinalProgressBarValue+= KProgressBarUninstallAmount;
       
    98 	}
       
    99 	  
       
   100 EXPORT_C TInt32 CPlan::FinalProgressBarValue() const
       
   101 	{
       
   102 	return iFinalProgressBarValue;
       
   103 	}
       
   104 	
       
   105 EXPORT_C void CPlan::RunFilesBeforeShutdownL(const CSisRegistryFileDescription& aFileDescription)
       
   106 	{
       
   107 	CSisRegistryFileDescription* fileDescription = CSisRegistryFileDescription::NewLC(aFileDescription);
       
   108 	iFilesToRunBeforeShutdown.AppendL(fileDescription);
       
   109 	CleanupStack::Pop(fileDescription);
       
   110  	}
       
   111  	
       
   112 EXPORT_C const RPointerArray<CSisRegistryFileDescription>& CPlan::FilesToRunBeforeShutdown() const
       
   113 	{
       
   114  	return iFilesToRunBeforeShutdown;
       
   115 	}
       
   116 
       
   117 EXPORT_C void CPlan::RunFileAfterInstallL(const Sis::CFileDescription& aFileDescription, TChar aDrive, TBool aIsStub)
       
   118 	{
       
   119 	CSisRegistryFileDescription* fileDescription = CSisRegistryFileDescription::NewLC(aFileDescription, aDrive, aIsStub);
       
   120 	iFilesToRunAfterInstall.AppendL(fileDescription);
       
   121 	CleanupStack::Pop(fileDescription);
       
   122 	}
       
   123 
       
   124 EXPORT_C const RPointerArray<CSisRegistryFileDescription>& CPlan::FilesToRunAfterInstall() const
       
   125 	{
       
   126  	return iFilesToRunAfterInstall;
       
   127 	}
       
   128 
       
   129 EXPORT_C void CPlan::SetContainsPlugins(TBool aContainsPlugins)
       
   130 	{
       
   131 	iContainsPlugins = aContainsPlugins;
       
   132 	}
       
   133 
       
   134 EXPORT_C TBool CPlan::ContainsPlugins() const
       
   135 {	
       
   136 	return iContainsPlugins;
       
   137 }
       
   138 
       
   139 EXPORT_C void CPlan::AddAppArcRegFileL(const TDesC& aFilename) 
       
   140 {
       
   141 	HBufC* tmp = aFilename.AllocLC() ;
       
   142 	iAppArcRegFiles.AppendL(tmp);
       
   143 	CleanupStack::Pop(tmp);
       
   144 }
       
   145 
       
   146 EXPORT_C const RPointerArray<TDesC>& CPlan::AppArcRegFiles() const
       
   147 	{
       
   148 	return iAppArcRegFiles;
       
   149 	}
       
   150 
       
   151 EXPORT_C void CPlan::ResetAppArcRegFiles()
       
   152 	{
       
   153 	iAppArcRegFiles.ResetAndDestroy();
       
   154 	}
       
   155 	
       
   156