telephonyprotocols/pdplayer/src/pdpmcprstates.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 23 6b1d113cdff3
--- a/telephonyprotocols/pdplayer/src/pdpmcprstates.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyprotocols/pdplayer/src/pdpmcprstates.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,137 +1,137 @@
-// 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:
-//
-
-#include <etelqos.h>
-#include <comms-infras/ss_metaconnprov.h>
-#include <comms-infras/ss_nodeinterfaces.h>
-#include <elements/nm_messages_errorrecovery.h>
-#include <comms-infras/ss_mcprnodemessages.h>
-#include "pdpmcpr.h"
-#include "pdpmcprstates.h"
-
-using namespace ESock;
-using namespace NetStateMachine;
-using namespace Messages;
-
-namespace PdpMCprStates
-{
-}
-
-namespace PdpMCprErrorRecoveryActivity
-{
-
-DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TAwaitingContentionResult, NetStateMachine::MState, PdpMCprStates::TContext)
-TBool CPdpErrorRecoveryActivity::TAwaitingContentionResult::Accept()
-	{
-	TPDPMessages::TPdpContentionResultMessage* msg = message_cast<TPDPMessages::TPdpContentionResultMessage>(&iContext.iMessage);
-	CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
-	if(msg && msg->iNodeId == activity.iPendingCprId)
-		{
-		return ETrue;
-		}
-	return EFalse;
-	}
-
-
-DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TPdpContentionNoTagOrError, NetStateMachine::MStateFork, PdpMCprStates::TContext)
-TInt CPdpErrorRecoveryActivity::TPdpContentionNoTagOrError::TransitionTag()
-	{
-	CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
-
-	if (activity.iPendingCprId == Messages::TNodeId::NullId())
-		{
-		return MeshMachine::KErrorTag;
-		}
-	else
-		{
-		return MeshMachine::KNoTag;
-		}
-	}
-
-DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TProcessErrorRecoveryReq, NetStateMachine::MStateTransition, PdpMCprStates::TContext)
-void CPdpErrorRecoveryActivity::TProcessErrorRecoveryReq::DoL()
-	{
-	TEErrorRecovery::TErrorRecoveryRequest& req = message_cast<TEErrorRecovery::TErrorRecoveryRequest>(iContext.iMessage);
-	TInt error = req.iErrContext.iStateChange.iError;
-
-#ifdef SYMBIAN_NETWORKING_CONTENTION_MANAGEMENT
-	if (req.iErrContext.iStateChange.iError == KErrUmtsMaxNumOfContextExceededByNetwork ||
-	    req.iErrContext.iStateChange.iError == KErrUmtsMaxNumOfContextExceededByPhone)
-		{
-		// Get sender's priority
-		TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TCFClientType(TCFClientType::EData));
-		ESock::RCFNodePriorityInterface* dataClient;
-		TBool wasFound = EFalse;
-		TUint cprPriority = KMaxTUint;
-		while ((dataClient = static_cast<RCFNodePriorityInterface*>(iter++)) != NULL)
-			{
-			if (dataClient->RecipientId() == req.iErrContext.iOriginator)
-				{
-				cprPriority = dataClient->Priority();
-				wasFound = ETrue;
-				}
-			}
-		if (wasFound)
-			{
-			TInt err = KErrNone;
-			TBool result = EFalse;
-			TRAP(err, result = iContext.Node().GetTierManager()->HandleContentionL(&iContext.Node(), req.iErrContext.iOriginator, cprPriority));
-			if (err == KErrNone && result)
-				{
-				CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
-				activity.iPendingCprId = req.iErrContext.iOriginator;
-				activity.iCprActivity = req.iErrContext.iActivitySigId;
-				activity.iCprMessageId = req.iErrContext.iMessageId;
-				activity.iErrorCode = error;
-				// The contention request has been added into query, Reset message error code.
-				// TErrResponse will be send from Mcpr's ContentionResolved function.
-				error = KErrNone;
-				}
-			}
-		}
-#endif
-
-	if (error != KErrNone)
-		{
-		TErrResponse propagateResp(TErrResponse::EPropagate, error, req.iErrContext.iMessageId);
-		TEErrorRecovery::TErrorRecoveryResponse rawResp	(propagateResp);
-
-		TCFSafeMessage::TResponseCarrierWest<TEErrorRecovery::TErrorRecoveryResponse> resp(rawResp, iContext.iSender);
-		iContext.PostToSender(resp);
-		}
-	}
-
-DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TProcessContentionResult, NetStateMachine::MStateTransition, PdpMCprStates::TContext)
-void CPdpErrorRecoveryActivity::TProcessContentionResult::DoL()
-	{
-	TPDPMessages::TPdpContentionResultMessage* msg = message_cast<TPDPMessages::TPdpContentionResultMessage>(&iContext.iMessage);
-	CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
-	if (msg->iValue != 0)
-		{
-		TErrResponse retryResp(TErrResponse::ERetry, 0, activity.iCprMessageId);
-		TEErrorRecovery::TErrorRecoveryResponse rawResp	(retryResp);
-		TCFSafeMessage::TResponseCarrierWest<TEErrorRecovery::TErrorRecoveryResponse> resp(rawResp, activity.iOriginators[0].RecipientId());
-		iContext.PostToSender(resp);
-		}
-	else
-		{
-		TErrResponse propagateResp(TErrResponse::EPropagate, activity.iErrorCode, activity.iCprMessageId);
-		TEErrorRecovery::TErrorRecoveryResponse rawResp	(propagateResp);
-		TCFSafeMessage::TResponseCarrierWest<TEErrorRecovery::TErrorRecoveryResponse> resp(rawResp, activity.iOriginators[0].RecipientId());
-		iContext.PostToSender(resp);
-		}
-	}
-}
-
+// 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:
+//
+
+#include <etelqos.h>
+#include <comms-infras/ss_metaconnprov.h>
+#include <comms-infras/ss_nodeinterfaces.h>
+#include <elements/nm_messages_errorrecovery.h>
+#include <comms-infras/ss_mcprnodemessages.h>
+#include "pdpmcpr.h"
+#include "pdpmcprstates.h"
+
+using namespace ESock;
+using namespace NetStateMachine;
+using namespace Messages;
+
+namespace PdpMCprStates
+{
+}
+
+namespace PdpMCprErrorRecoveryActivity
+{
+
+DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TAwaitingContentionResult, NetStateMachine::MState, PdpMCprStates::TContext)
+TBool CPdpErrorRecoveryActivity::TAwaitingContentionResult::Accept()
+	{
+	TPDPMessages::TPdpContentionResultMessage* msg = message_cast<TPDPMessages::TPdpContentionResultMessage>(&iContext.iMessage);
+	CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
+	if(msg && msg->iNodeId == activity.iPendingCprId)
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+
+DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TPdpContentionNoTagOrError, NetStateMachine::MStateFork, PdpMCprStates::TContext)
+TInt CPdpErrorRecoveryActivity::TPdpContentionNoTagOrError::TransitionTag()
+	{
+	CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
+
+	if (activity.iPendingCprId == Messages::TNodeId::NullId())
+		{
+		return MeshMachine::KErrorTag;
+		}
+	else
+		{
+		return MeshMachine::KNoTag;
+		}
+	}
+
+DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TProcessErrorRecoveryReq, NetStateMachine::MStateTransition, PdpMCprStates::TContext)
+void CPdpErrorRecoveryActivity::TProcessErrorRecoveryReq::DoL()
+	{
+	TEErrorRecovery::TErrorRecoveryRequest& req = message_cast<TEErrorRecovery::TErrorRecoveryRequest>(iContext.iMessage);
+	TInt error = req.iErrContext.iStateChange.iError;
+
+#ifdef SYMBIAN_NETWORKING_CONTENTION_MANAGEMENT
+	if (req.iErrContext.iStateChange.iError == KErrUmtsMaxNumOfContextExceededByNetwork ||
+	    req.iErrContext.iStateChange.iError == KErrUmtsMaxNumOfContextExceededByPhone)
+		{
+		// Get sender's priority
+		TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TCFClientType(TCFClientType::EData));
+		ESock::RCFNodePriorityInterface* dataClient;
+		TBool wasFound = EFalse;
+		TUint cprPriority = KMaxTUint;
+		while ((dataClient = static_cast<RCFNodePriorityInterface*>(iter++)) != NULL)
+			{
+			if (dataClient->RecipientId() == req.iErrContext.iOriginator)
+				{
+				cprPriority = dataClient->Priority();
+				wasFound = ETrue;
+				}
+			}
+		if (wasFound)
+			{
+			TInt err = KErrNone;
+			TBool result = EFalse;
+			TRAP(err, result = iContext.Node().GetTierManager()->HandleContentionL(&iContext.Node(), req.iErrContext.iOriginator, cprPriority));
+			if (err == KErrNone && result)
+				{
+				CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
+				activity.iPendingCprId = req.iErrContext.iOriginator;
+				activity.iCprActivity = req.iErrContext.iActivitySigId;
+				activity.iCprMessageId = req.iErrContext.iMessageId;
+				activity.iErrorCode = error;
+				// The contention request has been added into query, Reset message error code.
+				// TErrResponse will be send from Mcpr's ContentionResolved function.
+				error = KErrNone;
+				}
+			}
+		}
+#endif
+
+	if (error != KErrNone)
+		{
+		TErrResponse propagateResp(TErrResponse::EPropagate, error, req.iErrContext.iMessageId);
+		TEErrorRecovery::TErrorRecoveryResponse rawResp	(propagateResp);
+
+		TCFSafeMessage::TResponseCarrierWest<TEErrorRecovery::TErrorRecoveryResponse> resp(rawResp, iContext.iSender);
+		iContext.PostToSender(resp);
+		}
+	}
+
+DEFINE_SMELEMENT(CPdpErrorRecoveryActivity::TProcessContentionResult, NetStateMachine::MStateTransition, PdpMCprStates::TContext)
+void CPdpErrorRecoveryActivity::TProcessContentionResult::DoL()
+	{
+	TPDPMessages::TPdpContentionResultMessage* msg = message_cast<TPDPMessages::TPdpContentionResultMessage>(&iContext.iMessage);
+	CPdpErrorRecoveryActivity& activity = static_cast<CPdpErrorRecoveryActivity&>(*iContext.iNodeActivity);
+	if (msg->iValue != 0)
+		{
+		TErrResponse retryResp(TErrResponse::ERetry, 0, activity.iCprMessageId);
+		TEErrorRecovery::TErrorRecoveryResponse rawResp	(retryResp);
+		TCFSafeMessage::TResponseCarrierWest<TEErrorRecovery::TErrorRecoveryResponse> resp(rawResp, activity.iOriginators[0].RecipientId());
+		iContext.PostToSender(resp);
+		}
+	else
+		{
+		TErrResponse propagateResp(TErrResponse::EPropagate, activity.iErrorCode, activity.iCprMessageId);
+		TEErrorRecovery::TErrorRecoveryResponse rawResp	(propagateResp);
+		TCFSafeMessage::TResponseCarrierWest<TEErrorRecovery::TErrorRecoveryResponse> resp(rawResp, activity.iOriginators[0].RecipientId());
+		iContext.PostToSender(resp);
+		}
+	}
+}
+