diff -r 000000000000 -r ba25891c3a9e installationservices/swi/test/tasynccancel/installer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installationservices/swi/test/tasynccancel/installer.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,130 @@ +/* +* 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 "installer.h" +#include + + + +CInstaller::CInstaller() + :CActive(EPriorityNormal) + { + iFinishedInstallation=1; + iFinishedCanceling=0; + CActiveScheduler::Add(this); + } + +CInstaller* CInstaller::NewLC(CInstallPrefs* aPrefs) + { + CInstaller* result= new (ELeave) CInstaller; + CleanupStack::PushL(result); + result->ConstructL(aPrefs); + return result; + } + +CInstaller* CInstaller::NewL(CInstallPrefs* aPrefs) + { + CInstaller *result= CInstaller::NewLC(aPrefs); + CleanupStack::Pop(result); + return result; + } + +void CInstaller::ConstructL(CInstallPrefs* aPrefs) + { + iLauncher = CAsyncLauncher::NewL(); + if (aPrefs==NULL) + { + iDeletePrefs=1; + iPrefs = CInstallPrefs::NewL(); + } + else + { + iDeletePrefs=0; + iPrefs=aPrefs; + } + iUiHandler=CUIScriptAdaptor::NewL(); + } + +CInstaller::~CInstaller() + { + delete iLauncher; + if (iDeletePrefs==1) + { + delete iPrefs; + } + delete iUiHandler; + } + +void CInstaller::StartL(const TDesC& aSisToInstall) + { + iCancelationSuccess=0; + iFinishedInstallation=1; // will be set to 0 when CancelInstallation is called + iFinishedCanceling=0; + iEndStatus=iStatus.Int(); + + TFileName name(aSisToInstall); + + iLauncher->InstallL( *iUiHandler , name, *iPrefs, iStatus) ; + + + SetActive(); + } + +void CInstaller::CancelInstallation() + { + iFinishedInstallation=0; + iLauncher->CancelOperation(); + } + +void CInstaller::RunL() + { + iEndStatus=iStatus.Int(); + + if (iFinishedInstallation==1) + { + // We didn't make it in time to cancel installation, but that isn't an error + iCancelationSuccess=(iStatus==KErrNone)?1:iStatus.Int(); + } + else + { + if (iFinishedInstallation==0 && iStatus==KErrCancel) + { + iCancelationSuccess=1; + } + else + { + if (iStatus==KErrNone) + { + iCancelationSuccess=1; + } + else + { + iCancelationSuccess=0; + } + } + } + + // This will be checked by the canceltimer to determine if cancellation has finished + iFinishedCanceling=1; + } + +void CInstaller::DoCancel() + { + } + +// End of file