diff -r 000000000000 -r 4e1aa6a622a0 sysstatemgmt/sysrestart/src/restartsys.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysstatemgmt/sysrestart/src/restartsys.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,65 @@ +/* +* 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: Implementation of restartsys class. +* +*/ + +#include +#include +#include +#include "restartsys.h" +#include "trace.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// RestartSys::RestartSystem +// +// --------------------------------------------------------------------------- +// +EXPORT_C TInt RestartSys::RestartSystem() + { + FUNC_LOG; + + return RestartSystem( RStarterSession::EUnknownReset ); + } + + +// --------------------------------------------------------------------------- +// RestartSys::RestartSystem +// +// --------------------------------------------------------------------------- +// +EXPORT_C TInt RestartSys::RestartSystem( TInt aStartupMode ) + { + FUNC_LOG; + INFO_1( "System re-start requested, mode %d", aStartupMode ); + + RSsmStateManager session; + TInt errorCode = session.Connect(); + ERROR( errorCode, "Failed to connect to RSsmStateManager" ); + + if ( errorCode == KErrNone ) + { + TSsmStateTransition stateinfo( ESsmShutdown, + KSsmAnySubState, aStartupMode ); + + // Make request and ignore return value + errorCode = session.RequestStateTransition( stateinfo ); + ERROR( errorCode, "Failed to RequestStateTransition" ); + session.Close(); + } + + return errorCode; + }