--- /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);
+ }
+