diff -r 000000000000 -r 4e1aa6a622a0 sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmdcoopsysperformshutdownactions.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/cmdcoopsysperformshutdownactions.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,96 @@ +// Copyright (c) 2007-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: +// + +/** + @file + @internalComponent + @released +*/ + +#include "cmdcoopsysperformshutdownactions.h" +#include + +CCustomCmdCoopSysPerformShutdownActions* CCustomCmdCoopSysPerformShutdownActions::NewL() + { + CCustomCmdCoopSysPerformShutdownActions* self = new (ELeave) CCustomCmdCoopSysPerformShutdownActions(); + return self; + } + +CCustomCmdCoopSysPerformShutdownActions::CCustomCmdCoopSysPerformShutdownActions() + { + } + +CCustomCmdCoopSysPerformShutdownActions::~CCustomCmdCoopSysPerformShutdownActions() + { + } + +TInt CCustomCmdCoopSysPerformShutdownActions::Initialize(CSsmCustomCommandEnv* /*aCmdEnv*/) + { + //Connect to RSsmStateAdaptation + return iSsmStateAdaptation.Connect(); + } + +void CCustomCmdCoopSysPerformShutdownActions::Close() + { + //Cancel the request if there is any + iSsmStateAdaptation.RequestCancel(); + + //Close RSsmStateAdaptation + iSsmStateAdaptation.Close(); + } + +void CCustomCmdCoopSysPerformShutdownActions::Release() + { + delete this; + } + +void CCustomCmdCoopSysPerformShutdownActions::Execute(const TDesC8& aParams, TRequestStatus& aStatus) + { + TInt reason = 0; + + //Get the reason value + TRAPD(err, reason = ExecuteL(aParams)); + + if(KErrNone == err) + { + //Request coop system to perform restart actions + iSsmStateAdaptation.RequestCoopSysPerformShutdownActions(reason, aStatus); + } + else + { + //In case of error complete the request with error code + TRequestStatus* status = &aStatus; + User::RequestComplete(status, err); + } + } + +TInt CCustomCmdCoopSysPerformShutdownActions::ExecuteL(const TDesC8& aParams) + { + RResourceReader reader; + + //Open the descriptor data + reader.OpenLC(aParams); + + //Read the reason value from param data + const TInt reason = reader.ReadInt32L(); + CleanupStack::PopAndDestroy(&reader); + return reason; + } + +void CCustomCmdCoopSysPerformShutdownActions::ExecuteCancel() + { + //Cancel the request if there is any + iSsmStateAdaptation.RequestCancel(); + }