diff -r ac20d6a0a19d -r b982c3e940f3 telephonyprotocols/umtsgprsscpr/src/PdpFsmRequest.cpp --- a/telephonyprotocols/umtsgprsscpr/src/PdpFsmRequest.cpp Mon Aug 09 17:43:08 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,334 +0,0 @@ -// Copyright (c) 2005-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: -// The implementation file for the PDP Context control requests. -// -// - -/** - @file - @internalComponent -*/ - - -#include "PdpFsmRequest.h" - - -//-========================================================= -// -//CModifyActivePDPCtx -// -//-========================================================= -CModifyActivePDPCtx::CModifyActivePDPCtx(CUmtsGprsSubConnProvd& aProvider, MPdpFsmRequestOwner& aOwner) -:CPdpFsmRequestBase(aProvider, aOwner) -{ -} - -CModifyActivePDPCtx::~CModifyActivePDPCtx() -{ -} - - -TInt CModifyActivePDPCtx::Start() -{ - // Store the Context Id in order to check replies later - iContextId = iProvider.GetContextId(); - return iProvider.GetPdpFsmInterface().Input(iContextId, SpudMan::EContextModifyActive); -} - -/** -@param aEvent The event Id -@param aParam Data relavent to the event. Usually a system-wide error code -@return ETrue if the event was consumed, EFalse if it was of no interest and should -be passed on to SpudMan for processing. -*/ -TBool CModifyActivePDPCtx::PdpFsmEvent(TContextId aContextId, TInt aEvent, TInt aParam) -{ - if (aContextId == iContextId && aEvent == KContextModifyActiveEvent) - { - iOwner.Done(aParam, *this); - return ETrue; - } - - return EFalse; -} - - - -#ifdef SYMBIAN_NETWORKING_UMTSR5 -//-========================================================= -// -//CModifyR5QoS -// -//-========================================================= -CModifyR5QoS::CModifyR5QoS(CUmtsGprsSubConnProvd& aProvider, MPdpFsmRequestOwner& aOwner, RPacketQoS::TQoSR5Requested& aParams) -:CPdpFsmRequestBase(aProvider, aOwner), - iModifyActive(NULL), - i5(aParams) -{ -} - -CModifyR5QoS::~CModifyR5QoS() -{ - ASSERT(iModifyActive == NULL || iContextId == 0); - //If we assert here is is becuase Start has been called (allocated iContextId), but Done has not been called (cleans iModifyActive) - delete iModifyActive; -} - -void CModifyR5QoS::GrantedSetupL() - { - CSubConGenEventParamsGranted* event = CSubConGenEventParamsGranted::NewL(); - CleanupStack::PushL (TCleanupItem(SubconEventCleanupFunction, event)); - event->SetFamily (KSubConQoSFamily); - RPacketQoS::TQoSR5Negotiated negotiatedQoS; - iProvider.GetPdpFsmInterface().Get(iProvider.GetContextId(), negotiatedQoS); - iProvider.MapQosEtelToGrantedParamsL(&negotiatedQoS, *event); - iProvider.NotifyClientEvent (*event); - CleanupStack::Pop(); - delete event; - - } - -void CModifyR5QoS::RejectedSetupL(TInt aResult) - { - CSubConGenEventParamsRejected* event = CSubConGenEventParamsRejected::NewL(); - CleanupStack::PushL (TCleanupItem(SubconEventCleanupFunction, event)); - event->SetFamilyId (KSubConQoSFamily); - event->SetError (aResult); - iProvider.NotifyClientEvent (*event); - CleanupStack::Pop(); - delete event; - } - -void CModifyR5QoS::Done( TInt aResult, CPdpFsmRequestBase& aThis ) -{ - __ASSERT_ALWAYS(iModifyActive == &aThis, User::Invariant()); - - if ( aResult == KErrNone ) - { - // QoS Modification complete with success. - __FLOG_1(_L("CModifyR5QoS [this=%08x]:\tDone(): QoS Params Granted"), this); - TRAP_IGNORE(GrantedSetupL()); - } - else - { - //QoS Modification complete with failure. - __FLOG_2(_L("CModifyR5QoS [this=%08x]:\tDone(): QoS Params Rejected [aResult=%d]"), this, aResult); - TRAP_IGNORE(RejectedSetupL(aResult)); - } - - - delete iModifyActive; - iModifyActive = NULL; - iOwner.Done(aResult, *this); -} - - -TInt CModifyR5QoS::Start() -{ - // Store the Context Id in order to check replies later - iContextId = iProvider.GetContextId(); - - TInt result; - result = iProvider.GetPdpFsmInterface().Set(iContextId, i5); - if (result == KErrNone) - { - result = iProvider.GetPdpFsmInterface().Input(iContextId, SpudMan::EContextQoSSet); - } - - return result; -} - - -TBool CModifyR5QoS::PdpFsmEvent(TContextId aContextId, TInt aEvent, TInt aParam) -{ - if (aContextId != iContextId) - { - return EFalse; - } - - TBool handled(EFalse); - if (aEvent == KContextQoSSetEvent) - { - if (aParam == KErrNone) - { - iModifyActive->Start(); - } - else - { - //QoS Modification complete with failure. - __FLOG_2(_L("CModifyR5QoS [this=%08x]:\tPdpFsmEvent(): QoS Params Rejected [aParam=%d]"), this, aParam); - - Done(aParam, *iModifyActive); - } - handled = ETrue; - } - else - { - handled = iModifyActive->PdpFsmEvent(aContextId, aEvent, aParam); - } - - return handled; -} - - -void CModifyR5QoS::ConstructL() -{ - iModifyActive = new(ELeave)CModifyActivePDPCtx(iProvider, *this); -} - - -CModifyR5QoS* CModifyR5QoS::NewL(CUmtsGprsSubConnProvd& aProvider, MPdpFsmRequestOwner& aOwner, RPacketQoS::TQoSR5Requested& aParams) -{ - CModifyR5QoS* request = new(ELeave) CModifyR5QoS(aProvider, aOwner, aParams); - CleanupStack::PushL(request); - request->ConstructL(); - CleanupStack::Pop(request); - return request; -} - - -#else -// !SYMBIAN_NETWORKING_UMTSR5 - -//-========================================================= -// -//CModifyR4QoS -// -//-========================================================= -CModifyR4QoS::CModifyR4QoS(CUmtsGprsSubConnProvd& aProvider, MPdpFsmRequestOwner& aOwner, RPacketQoS::TQoSR99_R4Requested aParams) -:CPdpFsmRequestBase(aProvider, aOwner), - iModifyActive(NULL), - i99(aParams) -{ -} - -CModifyR4QoS::~CModifyR4QoS() -{ - ASSERT(iModifyActive == NULL || iContextId == 0); - //If we assert here is is becuase Start has been called (allocated iContextId), but Done has not been called (cleans iModifyActive) - delete iModifyActive; - -} - -void CModifyR4QoS::GrantedSetupL() - { - CSubConGenEventParamsGranted* event = CSubConGenEventParamsGranted::NewL(); - CleanupStack::PushL (TCleanupItem(SubconEventCleanupFunction, event)); - event->SetFamily (KSubConQoSFamily); - RPacketQoS::TQoSR99_R4Negotiated negotiatedQoS; - iProvider.GetPdpFsmInterface().Get(iProvider.GetContextId(), negotiatedQoS); - iProvider.MapQosEtelToGrantedParamsL(&negotiatedQoS, *event); - iProvider.NotifyClientEvent (*event); - CleanupStack::Pop(); - delete event; - } - -void CModifyR4QoS::RejectedSetupL(TInt aResult) - { - CSubConGenEventParamsRejected* event = CSubConGenEventParamsRejected::NewL(); - CleanupStack::PushL (TCleanupItem(SubconEventCleanupFunction, event)); - event->SetFamilyId (KSubConQoSFamily); - event->SetError (aResult); - iProvider.NotifyClientEvent (*event); - CleanupStack::Pop(); - delete event; - } - -void CModifyR4QoS::Done( TInt aResult, CPdpFsmRequestBase& aThis ) -{ - - __ASSERT_ALWAYS(iModifyActive == &aThis, User::Invariant()); - if ( aResult == KErrNone ) - { - // QoS Modification complete with success. - __FLOG_1(_L("CModifyR4QoS [this=%08x]:\tDone(): QoS Params Granted"), this); - TRAP_IGNORE(GrantedSetupL()); - } - else - { - //QoS Modification complete with failure. - __FLOG_2(_L("CModifyR4QoS [this=%08x]:\tDone(): QoS Params Rejected [aResult=%d]"), this, aResult); - TRAP_IGNORE(RejectedSetupL(aResult)); - } - delete iModifyActive; - iModifyActive = NULL; - iOwner.Done(aResult, *this); -} - - -TInt CModifyR4QoS::Start() -{ - // Store the Context Id in order to check replies later - iContextId = iProvider.GetContextId(); - - TInt result; - result = iProvider.GetPdpFsmInterface().Set(iContextId, i99); - if (result == KErrNone) - { - result = iProvider.GetPdpFsmInterface().Input(iContextId, SpudMan::EContextQoSSet); - } - - return result; -} - -TBool CModifyR4QoS::PdpFsmEvent(TContextId aContextId, TInt aEvent, TInt aParam) -{ - if (aContextId != iContextId) - { - return EFalse; - } - - TBool handled(EFalse); - if (aEvent == KContextQoSSetEvent) - { - if (aParam == KErrNone) - { - iModifyActive->Start(); - } - else - { - //QoS Modification complete with failure. - __FLOG_2(_L("CModifyR4QoS [this=%08x]:\tPdpFsmEvent(): QoS Params Rejected [aParam=%d]"), this, aParam); - Done(aParam, *iModifyActive); - } - handled = ETrue; - } - else - { - handled = iModifyActive->PdpFsmEvent(aContextId, aEvent, aParam); - } - - return handled; -} - - -void CModifyR4QoS::ConstructL() -{ - iModifyActive = new(ELeave)CModifyActivePDPCtx(iProvider, *this); -} - -CModifyR4QoS* CModifyR4QoS::NewL(CUmtsGprsSubConnProvd& aProvider, MPdpFsmRequestOwner& aOwner, RPacketQoS::TQoSR99_R4Requested aParams) -{ - CModifyR4QoS* request = new(ELeave) CModifyR4QoS(aProvider, aOwner, aParams); - CleanupStack::PushL(request); - request->ConstructL(); - CleanupStack::Pop(request); - return request; -} - - - -#endif -// SYMBIAN_NETWORKING_UMTSR5 -