sysstatemgmt/systemstatemgr/ssm/src/ssmswppolicysess.cpp
changeset 0 4e1aa6a622a0
--- /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 <e32capability.h>
+#include <ssm/ssmswp.h>
+
+#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);
+	}
+