diff -r 000000000000 -r 4e1aa6a622a0 sysstatemgmt/systemstatemgr/ssm/src/ssmswppolicysess.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysstatemgmt/systemstatemgr/ssm/src/ssmswppolicysess.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,174 @@ +// Copyright (c) 2008-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: +// + +#include +#include + +#include "ssmdebug.h" +#include "ssmswppolicysrv.h" +#include "ssmswppolicysess.h" +#include "ssmswppolicyconst.h" +#include "ssmcommandutilprovider.h" + +void CSsmSwpPolicySession::ServiceL(const RMessage2& aMessage) + { + switch(aMessage.Function()) + { + case ESsmPolicySrvSetSwpPolicyDllHandleAndInitialize: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: ESsmPolicySrvSetSwpPolicyDllHandleAndInitialize")); + iSsmSwpPolicySvr.CallSetDllHandleAndInitializeL(aMessage, iSessionIndex); + break; + } + + case ESsmPolicySrvInitializeCancel: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: ESsmPolicySrvInitializeCancel")); + iSsmSwpPolicySvr.CallInitializeCancel(iSessionIndex); + aMessage.Complete(KErrNone); + break; + } + + case ESsmPolicySrvPrepareCommandList: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: ESsmPolicySrvPrepareCommandList")); + iSsmSwpPolicySvr.CallPrepareCommandListL(aMessage, iSessionIndex); + break; + } + + case ESsmPolicySrvPrepareCommandListCancel: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: ESsmPolicySrvPrepareCommandListCancel")); + iSsmSwpPolicySvr.CallPrepareCommandListCancel(iSessionIndex); + aMessage.Complete(KErrNone); + break; + } + + case ESsmPolicySrvCommandList: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: ESsmPolicySrvCommandList")); + iSsmSwpPolicySvr.CallCommandListL(aMessage, iSessionIndex); + break; + } + + case ESsmPolicySrvHandleCleReturnValue: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: ESsmPolicySrvHandleCleReturnValue")); + iSsmSwpPolicySvr.CallHandleCleReturnValueL(aMessage, iSessionIndex); + break; + } + + case ESsmPolicySrvHandleCleReturnValueCancel: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: ESsmPolicySrvHandleCleReturnValueCancel")); + iSsmSwpPolicySvr.CallHandleCleReturnValueCancel(iSessionIndex); + aMessage.Complete(KErrNone); + break; + } + + case EDebugMarkHeap: + { + #ifdef _DEBUG + __UHEAP_MARK; + DEBUGPRINT2(_L("CSsmSwpPolicySession - EDebugMarkHeap: Alloc Cells: %d."), User::CountAllocCells()); + #endif + aMessage.Complete(KErrNone); + break; + } + + case EDeleteSSwpPolicySessionInfo: + { + #ifdef TEST_SSM_SERVER + iSsmSwpPolicySvr.DeleteSSwpPolicySessionInfo(iSessionIndex); + DEBUGPRINT1(_L("CSsmSwpPolicySession - EDeleteSSwpPolicySessionInfo")); + #endif //TEST_SSM_SERVER + aMessage.Complete(KErrNone); + break; + } + + case EDebugMarkHeapEnd: + { + #ifdef _DEBUG + __UHEAP_MARKEND; + DEBUGPRINT2(_L("CSsmSwpPolicySession - EDebugMarkHeapEnd: Alloc Cells: %d."), User::CountAllocCells()); + #endif + aMessage.Complete(KErrNone); + break; + } + + case EDebugSetHeapFailure: + { + #ifdef TEST_SSM_SERVER + //User::__DbgSetAllocFail(RHeap::EUser,(RHeap::TAllocFail)aMessage.Int0(),aMessage.Int1()); + __UHEAP_SETFAIL(RAllocator::EFailNext,aMessage.Int0()); + DEBUGPRINT2(_L("CSsmSwpPolicySession - EDebugSetHeapFailure: Value of Failure Rate: %d."), aMessage.Int0()); + #endif + aMessage.Complete(KErrNone); + break; + } + case EDebugHeapReset: + { + #ifdef _DEBUG + __UHEAP_RESET; + DEBUGPRINT1(_L("CSsmSwpPolicySession - EDebugHeapReset")); + #endif + aMessage.Complete(KErrNone); + break; + } + default: + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: Opcode not supported")); + aMessage.Complete(KErrNotSupported); + break; + } + } + } + +/** +Constructs and returns a pointer to CSsmSwpPolicySession. +*/ +CSsmSwpPolicySession* CSsmSwpPolicySession::NewL(CSsmSwpPolicyServer& aSsmPolicyServer) + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: Constructs Server side session for RSsmSwpPolicySession")); + CSsmSwpPolicySession* self = new(ELeave) CSsmSwpPolicySession(aSsmPolicyServer); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + +CSsmSwpPolicySession::CSsmSwpPolicySession(CSsmSwpPolicyServer& aSsmPolicyServer) + : iSsmSwpPolicySvr(aSsmPolicyServer) + { + } + +/** +Registers the session with SsmSwpPolicyServer +*/ +void CSsmSwpPolicySession::ConstructL() + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: Registers the session with SsmSwpPolicyServer")); + iSsmSwpPolicySvr.RegisterSessionL(iSessionIndex); + } + +/** +Deregisters the session from SsmSwpPolicyServer +*/ +CSsmSwpPolicySession::~CSsmSwpPolicySession() + { + DEBUGPRINT1(_L("CSsmSwpPolicySession: Deregisters the session from SsmSwpPolicyServer")); + iSsmSwpPolicySvr.DeregisterSession(iSessionIndex); + } +