diff -r 000000000000 -r 164170e6151a devencdiskutils/DevEncStarter/src/DevEncStarterEngine.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/devencdiskutils/DevEncStarter/src/DevEncStarterEngine.cpp Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,123 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Predefined contacts engine (state machine) +* +*/ + + +#include +#include "DevEncStarterEngine.h" +#include "DevEncStarterdef.h" +#include "DevEncLog.h" +#include "DevEncStarterMmcObserver.h" +#include "DevEncUids.hrh" +#include "DevEncStarterUtils.h" +#include "DevEncProtectedPSKey.h" + +// --------------------------------------------------------------------------- +// CDevEncStarterEngine::NewLC +// C++ constructor +// --------------------------------------------------------------------------- +// +CDevEncStarterEngine* CDevEncStarterEngine::NewLC() + { + DFLOG( "CDevEncStarterAppUi::NewLC" ); + CDevEncStarterEngine* self = new( ELeave ) CDevEncStarterEngine(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CDevEncStarterEngine::CDevEncStarterEngine +// C++ constructor +// --------------------------------------------------------------------------- +// +CDevEncStarterEngine::CDevEncStarterEngine() + : CActive( EPriorityNormal ) + { + } + +// --------------------------------------------------------------------------- +// CDevEncStarterEngine::ConstructL +// --------------------------------------------------------------------------- +// +void CDevEncStarterEngine::ConstructL() + { + DFLOG( "CDevEncStarterAppUi::ConstructL" ); + iUtils = CDevEncStarterUtils::NewL(); + iMmcObserver = CDevEncStarterMmcObserver::NewL( iUtils ); + + const TSecurityPolicy policy( ECapability_None ); + RProperty::Define( KDevEncProtectedUid, KDevEncOperationKey, RProperty::EInt, policy, policy ); + + iProperty.Attach( KPSUidStartup, KPSGlobalSystemState ); + CActiveScheduler::Add( this ); + + iProperty.Subscribe( iStatus ); + SetActive(); + } + +// --------------------------------------------------------------------------- +// CDevEncStarterEngine::~CDevEncStarterEngine +// Destructor +// --------------------------------------------------------------------------- +// +CDevEncStarterEngine::~CDevEncStarterEngine() + { + DFLOG( "CDevEncStarterAppUi::~CDevEncStarterAppUi" ); + + delete iMmcObserver; + delete iUtils; + + RProperty::Delete( KDevEncProtectedUid, KDevEncOperationKey ); + + Cancel(); + iProperty.Close(); + } + +// ----------------------------------------------------------------------------- +// CDevEncStarterEngine::DoCancel +// ----------------------------------------------------------------------------- +// +void CDevEncStarterEngine::DoCancel() + { + DFLOG( "CDevEncStarterEngine::DoCancel()" ); + iProperty.Cancel(); + } + +// ----------------------------------------------------------------------------- +// CDevEncStarterEngine::RunL +// ----------------------------------------------------------------------------- +// +void CDevEncStarterEngine::RunL() + { + DFLOG( "CDevEncStarterEngine::RunL()" ); + TInt value( 0 ); + iProperty.Get( value ); + + if( value == ESwStateShuttingDown ) + { + CActiveScheduler::Stop(); + } + else + { + iProperty.Subscribe( iStatus ); + SetActive(); + } + } + +// End of file + +