installationservices/swi/source/daemon/daemoninstaller.cpp
branchRCL_3
changeset 25 7333d7932ef7
parent 24 5cc91383ab1e
child 26 8b7f4e561641
--- a/installationservices/swi/source/daemon/daemoninstaller.cpp	Thu Aug 19 10:02:49 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-#include <apgcli.h>
-#include "daemoninstaller.h"
-#include "swispubsubdefs.h"
-#include "log.h"
-
-const static TInt KAppListRetryWaitTime = 5000000; // 5 secs
-_LIT(KMCSisInstaller,"Daemon-Installer"); // Minor-Component name
-
-namespace Swi
-	{
-	// Two phased construction
-
-	CSisInstaller* CSisInstaller::NewL(MDaemonInstallBehaviour* aDaemonBehaviour)
-		{
-		CSisInstaller* self = new (ELeave) CSisInstaller(aDaemonBehaviour);
-		CleanupStack::PushL(self);
-		self->ConstructL();
-		CleanupStack::Pop(self);
-		return self;
-		}
-	
-	// Install Request constructor
-	
-	CSisInstaller::CSisInstaller(MDaemonInstallBehaviour* aDaemonBehaviour) : CActive(CActive::EPriorityStandard),
-		  iDaemonBehaviour(aDaemonBehaviour),
-		  iState(MDaemonInstallBehaviour::EStateVerifyAppCacheList),
-		  iFileIndex(0),
-		  iTimeStep(KAppListRetryWaitTime)		  
-		{
-		CActiveScheduler::Add(this);
-		}
-	
-	// Install Request destructor
-
-	CSisInstaller::~CSisInstaller()
-		{
-		Cancel();
-		iTimer.Close();
-		iProperty.Close();
-		iFilesToInstall.ResetAndDestroy();
-		iFilesToInstall.Close();
-		}
-	
-	// 2nd phase construction
-
-	void CSisInstaller::ConstructL()
-		{
-		User::LeaveIfError(iTimer.CreateLocal());
-		User::LeaveIfError(iProperty.Attach(KUidSystemCategory,KUidSoftwareInstallKey));
-		}
-		
-	// Set the location of all sis files and the list of them
-	// also take ownership of the pointers to memory
-		
-	void CSisInstaller::AddFileToInstallL(const TDesC& aFileName)
-		{
-		DEBUG_PRINTF2(_L("SWI Daemon - Queueing presintalled SIS file '%S' for processing"),
-			&aFileName);
-		
-		HBufC* fileName = aFileName.AllocLC();
-		iFilesToInstall.AppendL(fileName);
-		CleanupStack::Pop(fileName);
-		}
-	
-	// Start the request to process the Sisx file
-
-	void CSisInstaller::StartInstallingL()
-		{
-		if(iFilesToInstall.Count() > 0)
-			{
-			iState = MDaemonInstallBehaviour::EStateVerifyAppCacheList;
-			ReRequestL();
-			}
-		}
-		
-	// Requesting an asyncronous timer/subscrive event
-
-	void CSisInstaller::ReRequestL()
-		{
-		switch (iState)
-			{
-		// Verify the app cache list at time intervals
-		case MDaemonInstallBehaviour::EStateVerifyAppCacheList:
-			iTimer.Cancel();
-			iTimer.After(iStatus,iTimeStep);
-			SetActive();
-			break;
-		
-		// Verify software installer property 
-		case MDaemonInstallBehaviour::EStateVerifySwisProperty:
-			CompleteSelf();
-			break;
-		
-		case MDaemonInstallBehaviour::EStateVerifySwisIdle:
-			iProperty.Subscribe(iStatus);
-			SetActive();
-			break;
-
-		case MDaemonInstallBehaviour::EStateInstall:
-			CompleteSelf();
-			break;
-
-		default:
-			// SisInstaller in an incorrect state
-			User::Panic(KMCSisInstaller,KErrNotSupported);
-			break;			
-			}
-		}
-		
-	// Complete the request manually
-		
-	void CSisInstaller::CompleteSelf()
-		{
-		TRequestStatus* status = &iStatus;
-		User::RequestComplete(status,KErrNone);
-		SetActive();
-		}
-
-	// Cancel the active request
-
-	void CSisInstaller::DoCancel()
-		{
-		iProperty.Cancel();
-		iTimer.Cancel();
-		}
-
-	void CSisInstaller::Reset()
-		{
-		Cancel();
-		iFileIndex = 0;
-		iFilesToInstall.ResetAndDestroy();
-		}
-	
-	// When the software installer has changed state
-	// attemp to install a sisx file
-
-	void CSisInstaller::RunL()
-		{
-		if (iStatus.Int() != KErrNone)
-			{
-			User::Leave(iStatus.Int()); // Invoke RunError
-			}
-					
-		switch (iState)
-			{
-		// Check the cached list of applications
-		case MDaemonInstallBehaviour::EStateVerifyAppCacheList:
-			iState = iDaemonBehaviour->VerifyAppCacheListL();
-			ReRequestL();
-			break;
-			
-		case MDaemonInstallBehaviour::EStateVerifySwisProperty:
-			iState = iDaemonBehaviour->VerifySwisPropertyL();
-			ReRequestL();
-			break;
-		
-		// Check the software installer is not busy
-		case MDaemonInstallBehaviour::EStateVerifySwisIdle:
-			iState = iDaemonBehaviour->VerifySwisIdleL();
-			ReRequestL();
-			break;
-			
-		// Install a file
-		case MDaemonInstallBehaviour::EStateInstall:
-			{
-			iSisFile.Copy(*iFilesToInstall[iFileIndex]);
-			iDaemonBehaviour->DoInstallRequestL(iSisFile);
-			if (++iFileIndex < iFilesToInstall.Count())
-				{
-				iState = MDaemonInstallBehaviour::EStateVerifySwisProperty;
-				CompleteSelf();
-				}
-			else
-				{
-				// All done
-				iDaemonBehaviour->DoNotifyMediaProcessingComplete();
-				}
-			
-			break;
-			}
-		
-		// Active object in unknown state
-		default:
-			User::Panic(KMCSisInstaller,KErrNotSupported);
-			break;
-			}
-		}
-	
-	// If RunL leaves then ignore errors
-
-	TInt CSisInstaller::RunError(TInt aError)
-		{
-		DEBUG_PRINTF3(_L8("SWI Daemon - Daemon failed in state %d with code %d"),
-			iState, aError);
-		
-		Reset();
-		TInt err(KErrNone);
-		if (aError == KErrCancel)
-			{
-			iState = MDaemonInstallBehaviour::EStateVerifyAppCacheList;
-			}
-		return err;
-		}		
-	}