diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyserverplugins/common_tsy/commontsy/src/mmpacket/cmmpacketqosgsmwcdmaext.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmpacket/cmmpacketqosgsmwcdmaext.cpp Mon May 03 13:37:20 2010 +0300 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmpacket/cmmpacketqosgsmwcdmaext.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,619 +1,619 @@ -// Copyright (c) 2006-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 FILES -#include "Cmmpacketservicetsy.h" -#include "Cmmpacketcontexttsy.h" -#include "cmmpacketqosgsmwcdmaext.h" -#include "Cmmpacketqostsy.h" -#include "Cmmpacketdef.h" -#include "etelqos.h" -#include "etelpckt.h" - -// ======== MEMBER FUNCTIONS ======== - -CMmPacketQoSGsmWcdmaExt::CMmPacketQoSGsmWcdmaExt() - { - } - -CMmPacketQoSGsmWcdmaExt* CMmPacketQoSGsmWcdmaExt::NewL( - CMmPacketQoSTsy* aMmPacketQoSTsy, - CMmPacketServiceTsy* aMmPacketService ) - { - CMmPacketQoSGsmWcdmaExt* packetQoSGsmWcdmaExt = - new ( ELeave ) CMmPacketQoSGsmWcdmaExt(); - - CleanupStack::PushL( packetQoSGsmWcdmaExt ); - packetQoSGsmWcdmaExt->iMmPacketQoSTsy = aMmPacketQoSTsy; - packetQoSGsmWcdmaExt->iMmPacketService = aMmPacketService; - packetQoSGsmWcdmaExt->ConstructL(); - CleanupStack::Pop( packetQoSGsmWcdmaExt ); - -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::NewL. "); - return packetQoSGsmWcdmaExt; - } - -void CMmPacketQoSGsmWcdmaExt::ConstructL() - { - iQoSGPRSNotifyPckg = NULL; - iQosAsked = EFalse; - } - -CMmPacketQoSGsmWcdmaExt::~CMmPacketQoSGsmWcdmaExt() - { -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::~CMmPacketQoSGsmWcdmaExt." ); - } - - - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::GetProfileCapabilities -// Gets profile capabilities -//---------------------------------------------------------------------------- - -TInt CMmPacketQoSGsmWcdmaExt::GetProfileCapabilities( - TDes8* aProfileCaps ) - { -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::GetProfileCapabilities." ); - - // Unpack the packet - TPckg* profileCapsPckg = - ( TPckg* ) aProfileCaps; - TPacketDataConfigBase& profileCaps = ( *profileCapsPckg )(); - - // If extension is KConfigGPRS - if ( TPacketDataConfigBase::KConfigGPRS == profileCaps.ExtensionId() ) - { - TPckg* gprsProfileCapsPckg = - ( TPckg* ) aProfileCaps; - RPacketQoS::TQoSCapsGPRS& gprsProfileCaps = ( *gprsProfileCapsPckg )(); - - gprsProfileCaps.iPrecedence = KMmPrecedence; - gprsProfileCaps.iDelay = KMmDelay; - gprsProfileCaps.iReliability = KMmReliability; - gprsProfileCaps.iPeak = KMmPeak; - gprsProfileCaps.iMean = KMmMean; - } - - // Else if extension is KConfigRel99Rel4 or KConfigRel5 - else if ( TPacketDataConfigBase::KConfigRel99Rel4 == - profileCaps.ExtensionId() || - TPacketDataConfigBase::KConfigRel5 == profileCaps.ExtensionId() ) - { - TPckg* gprs99ProfileCapsPckg = - ( TPckg* ) aProfileCaps; - RPacketQoS::TQoSCapsR99_R4& gprsProfileCaps = - ( *gprs99ProfileCapsPckg )(); - - gprsProfileCaps.iTrafficClass = KMmTrafficClass; - gprsProfileCaps.iDeliveryOrderReqd = KMmDeliveryOrderReqd; - gprsProfileCaps.iDeliverErroneousSDU = KMmErroneousSDUDelivery; - gprsProfileCaps.iBER = KMmBitErrorRatio; - gprsProfileCaps.iSDUErrorRatio = KMmSDUErrorRatio; - gprsProfileCaps.iTrafficHandlingPriority = KMmTrafficHandlingPriority; - } - - else - { - return KErrNotSupported; - } - - return KErrNone; - } - - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::GetProfileParameters -// Gets negotiated Qos parameters -//---------------------------------------------------------------------------- - -TInt CMmPacketQoSGsmWcdmaExt::GetProfileParameters( - TDes8* aProfile ) - { - - // Unpack the packet - TPckg* profilePckg = - ( TPckg* ) aProfile; - TPacketDataConfigBase& profile = ( *profilePckg )(); -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::GetProfileParameters."); - -// If extension is KConfigGPRS - if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() ) - { - TPckg* gprsProfilePckg = - ( TPckg* ) aProfile; - RPacketQoS::TQoSGPRSNegotiated& gprsProfile = ( *gprsProfilePckg )(); - - gprsProfile.iPrecedence = iQoSGPRSNegotiated.iPrecedence; - gprsProfile.iDelay = iQoSGPRSNegotiated.iDelay; - gprsProfile.iReliability = iQoSGPRSNegotiated.iReliability; - gprsProfile.iPeakThroughput = iQoSGPRSNegotiated.iPeakThroughput; - gprsProfile.iMeanThroughput = iQoSGPRSNegotiated.iMeanThroughput; - } -// If extension is KConfigRel99Rel4 - else if ( TPacketDataConfigBase::KConfigRel99Rel4 == profile.ExtensionId() ) - { - TPckg* gprsProfilePckg = - ( TPckg* ) aProfile; - RPacketQoS::TQoSR99_R4Negotiated& gprsProfile = ( *gprsProfilePckg )(); - - gprsProfile.iTrafficClass = iQoSR99_R4Negotiated.iTrafficClass; - gprsProfile.iDeliveryOrderReqd = - iQoSR99_R4Negotiated.iDeliveryOrderReqd; - gprsProfile.iDeliverErroneousSDU = - iQoSR99_R4Negotiated.iDeliverErroneousSDU; - gprsProfile.iMaxSDUSize = iQoSR99_R4Negotiated.iMaxSDUSize; - gprsProfile.iMaxRate = iQoSR99_R4Negotiated.iMaxRate; - gprsProfile.iBER = iQoSR99_R4Negotiated.iBER; - gprsProfile.iSDUErrorRatio = iQoSR99_R4Negotiated.iSDUErrorRatio; - gprsProfile.iTrafficHandlingPriority - = iQoSR99_R4Negotiated.iTrafficHandlingPriority; - gprsProfile.iTransferDelay = iQoSR99_R4Negotiated.iTransferDelay; - gprsProfile.iGuaranteedRate = iQoSR99_R4Negotiated.iGuaranteedRate; - } - // If extension is KConfigRel5 - else if ( TPacketDataConfigBase::KConfigRel5 == profile.ExtensionId() ) - { - -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::GetProfileParameters. Rel 5"); - TPckg* gprsProfilePckg = - ( TPckg* ) aProfile; - RPacketQoS::TQoSR5Negotiated& gprsProfile = ( *gprsProfilePckg )(); - - gprsProfile.iTrafficClass = iQoSR5Negotiated.iTrafficClass; - gprsProfile.iDeliveryOrderReqd = - iQoSR5Negotiated.iDeliveryOrderReqd; - gprsProfile.iDeliverErroneousSDU = - iQoSR5Negotiated.iDeliverErroneousSDU; - gprsProfile.iMaxSDUSize = iQoSR5Negotiated.iMaxSDUSize; - gprsProfile.iMaxRate = iQoSR5Negotiated.iMaxRate; - gprsProfile.iBER = iQoSR5Negotiated.iBER; - gprsProfile.iSDUErrorRatio = iQoSR5Negotiated.iSDUErrorRatio; - gprsProfile.iTrafficHandlingPriority = - iQoSR5Negotiated.iTrafficHandlingPriority; - gprsProfile.iTransferDelay = iQoSR5Negotiated.iTransferDelay; - gprsProfile.iGuaranteedRate = iQoSR5Negotiated.iGuaranteedRate; - gprsProfile.iSignallingIndication = - iQoSR5Negotiated.iSignallingIndication; - gprsProfile.iSourceStatisticsDescriptor = - iQoSR5Negotiated.iSourceStatisticsDescriptor; - } - - else - { - return KErrNotSupported; - } - - return KErrNone; - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::NotifyProfileChanged -// Saves new profile internally -//---------------------------------------------------------------------------- - -TInt CMmPacketQoSGsmWcdmaExt::NotifyProfileChanged( - TDes8* aProfile ) - { - - TPckg* profilePckg = - ( TPckg* ) aProfile; - TPacketDataConfigBase& profile = ( *profilePckg )(); - - if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() || - TPacketDataConfigBase::KConfigRel99Rel4 == profile.ExtensionId()|| - TPacketDataConfigBase::KConfigRel5 == profile.ExtensionId() ) - { - iQoSGPRSNotifyPckg = aProfile; - return KErrNone; - } - - return KErrNotSupported; - - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::NotifyProfileChangedCancel -// Clears internally saved profile -//---------------------------------------------------------------------------- - -void CMmPacketQoSGsmWcdmaExt::NotifyProfileChangedCancel() - { -TFLOGSTRING( "TSY: CMmPacketQoSGsmWcdmaExt::NotifyProfileChangedCancel." ); - - iQoSGPRSNotifyPckg = NULL; - - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::SetProfileParametersL -// Sends request for profile parameters to network -//---------------------------------------------------------------------------- - -TInt CMmPacketQoSGsmWcdmaExt::SetProfileParametersL( - TDes8* aProfile ) - { -TFLOGSTRING2("TSY: CMmPacketQoSGsmWcdmaExt::SetProfileParametersL. \t aProfile:%d", aProfile ); - - //Datapackage - CMmDataPackage data; - - // Initialize parameters - TInfoName contextName; - RPacketContext::TProtocolType pdpType; - TBool contextType( EFalse ); - TInfoName primaryContextName; - - //Get context configuration information - TInt ret = iMmPacketQoSTsy->PacketContextTsy()-> - PacketContextGsmWcdmaExt()->GetConfigurationData( - contextName, pdpType, contextType, primaryContextName ); - - //Get context status - RPacketContext::TContextStatus contextStatus = - iMmPacketQoSTsy->PacketContextTsy()->ContextStatus(); - - //initialize contextParams struct - TContextParams contextParams; - - contextParams.iContextName = contextName; - contextParams.iContextType = contextType; - contextParams.iPdpType = pdpType; - contextParams.iPrimaryContextName = primaryContextName; - contextParams.iContextStatus = contextStatus; - - TPckg* profilePckg = - ( TPckg* ) aProfile; - TPacketDataConfigBase& profile = ( *profilePckg )(); - - //Save what client has requested - if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() ) - { - TPckg* gprsProfilePckg = - ( TPckg* ) aProfile; - RPacketQoS::TQoSGPRSRequested& gprsProfile =( *gprsProfilePckg )(); - iRequested = gprsProfile; - iConfigurationType = TPacketDataConfigBase::KConfigGPRS; - - iQoSGPRSRequested = ETrue; - } - else if ( TPacketDataConfigBase::KConfigRel99Rel4 == profile.ExtensionId() ) - { - TPckg* gprsProfilePckg = - ( TPckg* ) aProfile; - RPacketQoS::TQoSR99_R4Requested& gprsProfile = ( *gprsProfilePckg )(); - iRequested99 = gprsProfile; - iConfigurationType = TPacketDataConfigBase::KConfigRel99Rel4; - - iQoSR99_R4Requested = ETrue; - } - else if ( TPacketDataConfigBase::KConfigRel5 == profile.ExtensionId() ) - { -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::SetProfileParameters. Rel 5"); - TPckg* gprsProfilePckg = - ( TPckg* ) aProfile; - RPacketQoS::TQoSR5Requested& gprsProfile = ( *gprsProfilePckg )(); - iRequestedR5 = gprsProfile; - iConfigurationType = TPacketDataConfigBase::KConfigRel5; - - iQoSR5Requested = ETrue; - } - else - { - ret = KErrNotSupported; - } - - - if ( KErrNone == ret ) - { - - data.PackData( &contextParams, &aProfile ); - TInt err = iMmPacketService->MessageManager()->HandleRequestL( - EPacketQoSSetProfileParams, &data ); - - if ( KErrNone != err ) - { - ret = KErrNotSupported; - } - - iQosAsked = ETrue; - } - - else - { - ret = KErrNotSupported; - } - - return ret; - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters -// Completes SetProfileParameters request to client -//---------------------------------------------------------------------------- - -void CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters( - const TInt aErrorValue ) - { -TFLOGSTRING2("TSY: CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters. \t aErrorValue:%d", aErrorValue ); - - // Call CompleteSetProfileParameters from QoS Tsy - iMmPacketQoSTsy->CompleteSetProfileParameters( aErrorValue ); - - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters -// Completes the notification to client. -// save negotiated qos values (values returned by network) -//---------------------------------------------------------------------------- - -void CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged( - CMmDataPackage* aDataPackage ) - { - - TInfoName mmPacketContextName; - - const CMmPacketDataPackage* data = - reinterpret_cast(aDataPackage); - //Get Qos parameters - data->GetProfileChanged( iQoSGPRSNegotiated, iQoSR99_R4Negotiated, - iQoSR5Negotiated ); - //Unpack data from datapackage - data->UnPackData( mmPacketContextName ); - - - - -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged . COPY new R99/R4 default values"); - //Copy negotiated values to minimun values - iRequested99.iMinTrafficClass = iQoSR99_R4Negotiated.iTrafficClass; - iRequested99.iMinDeliveryOrderReqd = - - - iQoSR99_R4Negotiated.iDeliveryOrderReqd; - iRequested99.iMinDeliverErroneousSDU = - - - iQoSR99_R4Negotiated.iDeliverErroneousSDU; - iRequested99.iMinAcceptableMaxSDUSize = - - - iQoSR99_R4Negotiated.iMaxSDUSize; - iRequested99.iMinAcceptableMaxRate = iQoSR99_R4Negotiated.iMaxRate; - iRequested99.iMaxBER = iQoSR99_R4Negotiated.iBER; - iRequested99.iMaxSDUErrorRatio = iQoSR99_R4Negotiated.iSDUErrorRatio; - iRequested99.iMinTrafficHandlingPriority = - - - iQoSR99_R4Negotiated.iTrafficHandlingPriority; - iRequested99.iMaxTransferDelay = iQoSR99_R4Negotiated.iTransferDelay; - iRequested99.iMinGuaranteedRate = - - - iQoSR99_R4Negotiated.iGuaranteedRate; - - //Copy negotiated values to requested values for default usage of 2nd - //context TFT modify - iRequested99.iReqTrafficClass = iQoSR99_R4Negotiated.iTrafficClass; - iRequested99.iReqDeliveryOrderReqd = - - - iQoSR99_R4Negotiated.iDeliveryOrderReqd; - iRequested99.iReqDeliverErroneousSDU = - - - iQoSR99_R4Negotiated.iDeliverErroneousSDU; - iRequested99.iReqMaxSDUSize = iQoSR99_R4Negotiated.iMaxSDUSize; - iRequested99.iReqMaxRate = iQoSR99_R4Negotiated.iMaxRate; - iRequested99.iReqBER = iQoSR99_R4Negotiated.iBER; - iRequested99.iReqSDUErrorRatio = iQoSR99_R4Negotiated.iSDUErrorRatio; - iRequested99.iReqTrafficHandlingPriority = - - - iQoSR99_R4Negotiated.iTrafficHandlingPriority; - iRequested99.iReqTransferDelay = iQoSR99_R4Negotiated.iTransferDelay; - iRequested99.iReqGuaranteedRate = iQoSR99_R4Negotiated.iGuaranteedRate; - - -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged . COPY new R97 default values"); - iRequested.iReqPrecedence = iQoSGPRSNegotiated.iPrecedence; - iRequested.iMinPrecedence = iQoSGPRSNegotiated.iPrecedence; - - iRequested.iReqDelay = iQoSGPRSNegotiated.iDelay; - iRequested.iMinDelay = iQoSGPRSNegotiated.iDelay; - - iRequested.iReqReliability = iQoSGPRSNegotiated.iReliability; - iRequested.iMinReliability = iQoSGPRSNegotiated.iReliability; - - iRequested.iReqPeakThroughput = iQoSGPRSNegotiated.iPeakThroughput; - iRequested.iMinPeakThroughput = iQoSGPRSNegotiated.iPeakThroughput; - - iRequested.iReqMeanThroughput = iQoSGPRSNegotiated.iMeanThroughput; - iRequested.iMinMeanThroughput = iQoSGPRSNegotiated.iMeanThroughput; - - - -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged . COPY new R5 default values"); - - //Copy negotiated values to minimun values - iRequestedR5.iMinTrafficClass = iQoSR5Negotiated.iTrafficClass; - iRequestedR5.iMinDeliveryOrderReqd = - iQoSR5Negotiated.iDeliveryOrderReqd; - iRequestedR5.iMinDeliverErroneousSDU = - iQoSR5Negotiated.iDeliverErroneousSDU; - iRequestedR5.iMinAcceptableMaxSDUSize = - iQoSR5Negotiated.iMaxSDUSize; - iRequestedR5.iMinAcceptableMaxRate = iQoSR5Negotiated.iMaxRate; - iRequestedR5.iMaxBER = iQoSR5Negotiated.iBER; - iRequestedR5.iMaxSDUErrorRatio = iQoSR5Negotiated.iSDUErrorRatio; - iRequestedR5.iMinTrafficHandlingPriority = - iQoSR5Negotiated.iTrafficHandlingPriority; - iRequestedR5.iMaxTransferDelay = iQoSR5Negotiated.iTransferDelay; - iRequestedR5.iMinGuaranteedRate = iQoSR5Negotiated.iGuaranteedRate; - - //Copy negotiated values to requested values for default usage of 2nd - //context TFT modify - iRequestedR5.iReqTrafficClass = iQoSR5Negotiated.iTrafficClass; - iRequestedR5.iReqDeliveryOrderReqd = - iQoSR5Negotiated.iDeliveryOrderReqd; - iRequestedR5.iReqDeliverErroneousSDU = - iQoSR5Negotiated.iDeliverErroneousSDU; - iRequestedR5.iReqMaxSDUSize = iQoSR5Negotiated.iMaxSDUSize; - iRequestedR5.iReqMaxRate = iQoSR5Negotiated.iMaxRate; - iRequestedR5.iReqBER = iQoSR5Negotiated.iBER; - iRequestedR5.iReqSDUErrorRatio = iQoSR5Negotiated.iSDUErrorRatio; - iRequestedR5.iReqTrafficHandlingPriority = - iQoSR5Negotiated.iTrafficHandlingPriority; - iRequestedR5.iReqTransferDelay = iQoSR5Negotiated.iTransferDelay; - iRequestedR5.iReqGuaranteedRate = iQoSR5Negotiated.iGuaranteedRate; - iRequestedR5.iSignallingIndication = - iQoSR5Negotiated.iSignallingIndication; - - - iRequestedR5.iSourceStatisticsDescriptor = - iQoSR5Negotiated.iSourceStatisticsDescriptor; - - // If pointer iQoSGPRSNotifyPckg exist - if ( NULL != iQoSGPRSNotifyPckg ) - { - TBool completeToClient( EFalse ); - - TPckg* profilePckg = - ( TPckg* ) iQoSGPRSNotifyPckg; - TPacketDataConfigBase& profile = ( *profilePckg )(); - - // if client uses R97 QoS parameters and aQoSNegotiated - // have been set - if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() && - iQoSGPRSRequested ) - { - completeToClient = ETrue; - - TPckg* gprsProfilePckg = - ( TPckg* ) iQoSGPRSNotifyPckg; - RPacketQoS::TQoSGPRSNegotiated& gprsProfile = - ( *gprsProfilePckg )(); - - // Update the client side data through pointers - gprsProfile = iQoSGPRSNegotiated; - -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged. R97/98 QoS Parameters in use"); - } - - // if client uses R99 QoS parameters and aQoS99Negotiated - // have been set - else if ( TPacketDataConfigBase::KConfigRel99Rel4 == - profile.ExtensionId() && iQoSR99_R4Requested ) - { - completeToClient = ETrue; - - TPckg* gprsProfilePckg = - ( TPckg* ) iQoSGPRSNotifyPckg; - RPacketQoS::TQoSR99_R4Negotiated& gprsProfile = - ( *gprsProfilePckg )(); - - // Update the client side data through pointers - gprsProfile = iQoSR99_R4Negotiated; -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged. R99/R4 QoS Parameters in use"); - - } - - else if ( TPacketDataConfigBase::KConfigRel5 == - profile.ExtensionId() && iQoSR5Requested ) - { - completeToClient = ETrue; - - TPckg* gprsProfilePckg = - ( TPckg* ) iQoSGPRSNotifyPckg; - RPacketQoS::TQoSR5Negotiated& gprsProfile = - ( *gprsProfilePckg )(); - - // Update the client side data through pointers - gprsProfile = iQoSR5Negotiated; -TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged. R5 QoS Parameters in use"); - } - - if ( completeToClient ) - { - - // Null pointers as notification is completed - iQoSGPRSNotifyPckg = NULL; - - // Call CompleteNotifyProfileChanged from TSY - iMmPacketQoSTsy->CompleteNotifyProfileChanged(); - - } - } - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::ProfileAsked -// Return value iQosAsked is true if client has request -// certain Qos values -//---------------------------------------------------------------------------- - -TBool CMmPacketQoSGsmWcdmaExt::ProfileAsked() - { - return iQosAsked; - } - - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::RequestedR5 -// Returns Rel5 Qos values reguested by client -//---------------------------------------------------------------------------- -RPacketQoS::TQoSR5Requested* CMmPacketQoSGsmWcdmaExt::RequestedR5() - - { - return &iRequestedR5; - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::Requested99 -// Returns 99 Qos values reguested by client -//---------------------------------------------------------------------------- - -RPacketQoS::TQoSR99_R4Requested* CMmPacketQoSGsmWcdmaExt::Requested99() - - { - return &iRequested99; - } - - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::Requested97 -// Returns 97/98 Qos values reguested by client -//---------------------------------------------------------------------------- - -RPacketQoS::TQoSGPRSRequested* CMmPacketQoSGsmWcdmaExt::Requested97() - { - return &iRequested; - } - -//---------------------------------------------------------------------------- -// CMmPacketQoSGsmWcdmaExt::ConfigurationType -// Returns return configuration type -//---------------------------------------------------------------------------- - -TInt CMmPacketQoSGsmWcdmaExt::ConfigurationType() const - { - return iConfigurationType; - } - - -// End of File +// Copyright (c) 2006-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 FILES +#include "Cmmpacketservicetsy.h" +#include "Cmmpacketcontexttsy.h" +#include "cmmpacketqosgsmwcdmaext.h" +#include "Cmmpacketqostsy.h" +#include "Cmmpacketdef.h" +#include "etelqos.h" +#include "etelpckt.h" + +// ======== MEMBER FUNCTIONS ======== + +CMmPacketQoSGsmWcdmaExt::CMmPacketQoSGsmWcdmaExt() + { + } + +CMmPacketQoSGsmWcdmaExt* CMmPacketQoSGsmWcdmaExt::NewL( + CMmPacketQoSTsy* aMmPacketQoSTsy, + CMmPacketServiceTsy* aMmPacketService ) + { + CMmPacketQoSGsmWcdmaExt* packetQoSGsmWcdmaExt = + new ( ELeave ) CMmPacketQoSGsmWcdmaExt(); + + CleanupStack::PushL( packetQoSGsmWcdmaExt ); + packetQoSGsmWcdmaExt->iMmPacketQoSTsy = aMmPacketQoSTsy; + packetQoSGsmWcdmaExt->iMmPacketService = aMmPacketService; + packetQoSGsmWcdmaExt->ConstructL(); + CleanupStack::Pop( packetQoSGsmWcdmaExt ); + +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::NewL. "); + return packetQoSGsmWcdmaExt; + } + +void CMmPacketQoSGsmWcdmaExt::ConstructL() + { + iQoSGPRSNotifyPckg = NULL; + iQosAsked = EFalse; + } + +CMmPacketQoSGsmWcdmaExt::~CMmPacketQoSGsmWcdmaExt() + { +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::~CMmPacketQoSGsmWcdmaExt." ); + } + + + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::GetProfileCapabilities +// Gets profile capabilities +//---------------------------------------------------------------------------- + +TInt CMmPacketQoSGsmWcdmaExt::GetProfileCapabilities( + TDes8* aProfileCaps ) + { +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::GetProfileCapabilities." ); + + // Unpack the packet + TPckg* profileCapsPckg = + ( TPckg* ) aProfileCaps; + TPacketDataConfigBase& profileCaps = ( *profileCapsPckg )(); + + // If extension is KConfigGPRS + if ( TPacketDataConfigBase::KConfigGPRS == profileCaps.ExtensionId() ) + { + TPckg* gprsProfileCapsPckg = + ( TPckg* ) aProfileCaps; + RPacketQoS::TQoSCapsGPRS& gprsProfileCaps = ( *gprsProfileCapsPckg )(); + + gprsProfileCaps.iPrecedence = KMmPrecedence; + gprsProfileCaps.iDelay = KMmDelay; + gprsProfileCaps.iReliability = KMmReliability; + gprsProfileCaps.iPeak = KMmPeak; + gprsProfileCaps.iMean = KMmMean; + } + + // Else if extension is KConfigRel99Rel4 or KConfigRel5 + else if ( TPacketDataConfigBase::KConfigRel99Rel4 == + profileCaps.ExtensionId() || + TPacketDataConfigBase::KConfigRel5 == profileCaps.ExtensionId() ) + { + TPckg* gprs99ProfileCapsPckg = + ( TPckg* ) aProfileCaps; + RPacketQoS::TQoSCapsR99_R4& gprsProfileCaps = + ( *gprs99ProfileCapsPckg )(); + + gprsProfileCaps.iTrafficClass = KMmTrafficClass; + gprsProfileCaps.iDeliveryOrderReqd = KMmDeliveryOrderReqd; + gprsProfileCaps.iDeliverErroneousSDU = KMmErroneousSDUDelivery; + gprsProfileCaps.iBER = KMmBitErrorRatio; + gprsProfileCaps.iSDUErrorRatio = KMmSDUErrorRatio; + gprsProfileCaps.iTrafficHandlingPriority = KMmTrafficHandlingPriority; + } + + else + { + return KErrNotSupported; + } + + return KErrNone; + } + + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::GetProfileParameters +// Gets negotiated Qos parameters +//---------------------------------------------------------------------------- + +TInt CMmPacketQoSGsmWcdmaExt::GetProfileParameters( + TDes8* aProfile ) + { + + // Unpack the packet + TPckg* profilePckg = + ( TPckg* ) aProfile; + TPacketDataConfigBase& profile = ( *profilePckg )(); +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::GetProfileParameters."); + +// If extension is KConfigGPRS + if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() ) + { + TPckg* gprsProfilePckg = + ( TPckg* ) aProfile; + RPacketQoS::TQoSGPRSNegotiated& gprsProfile = ( *gprsProfilePckg )(); + + gprsProfile.iPrecedence = iQoSGPRSNegotiated.iPrecedence; + gprsProfile.iDelay = iQoSGPRSNegotiated.iDelay; + gprsProfile.iReliability = iQoSGPRSNegotiated.iReliability; + gprsProfile.iPeakThroughput = iQoSGPRSNegotiated.iPeakThroughput; + gprsProfile.iMeanThroughput = iQoSGPRSNegotiated.iMeanThroughput; + } +// If extension is KConfigRel99Rel4 + else if ( TPacketDataConfigBase::KConfigRel99Rel4 == profile.ExtensionId() ) + { + TPckg* gprsProfilePckg = + ( TPckg* ) aProfile; + RPacketQoS::TQoSR99_R4Negotiated& gprsProfile = ( *gprsProfilePckg )(); + + gprsProfile.iTrafficClass = iQoSR99_R4Negotiated.iTrafficClass; + gprsProfile.iDeliveryOrderReqd = + iQoSR99_R4Negotiated.iDeliveryOrderReqd; + gprsProfile.iDeliverErroneousSDU = + iQoSR99_R4Negotiated.iDeliverErroneousSDU; + gprsProfile.iMaxSDUSize = iQoSR99_R4Negotiated.iMaxSDUSize; + gprsProfile.iMaxRate = iQoSR99_R4Negotiated.iMaxRate; + gprsProfile.iBER = iQoSR99_R4Negotiated.iBER; + gprsProfile.iSDUErrorRatio = iQoSR99_R4Negotiated.iSDUErrorRatio; + gprsProfile.iTrafficHandlingPriority + = iQoSR99_R4Negotiated.iTrafficHandlingPriority; + gprsProfile.iTransferDelay = iQoSR99_R4Negotiated.iTransferDelay; + gprsProfile.iGuaranteedRate = iQoSR99_R4Negotiated.iGuaranteedRate; + } + // If extension is KConfigRel5 + else if ( TPacketDataConfigBase::KConfigRel5 == profile.ExtensionId() ) + { + +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::GetProfileParameters. Rel 5"); + TPckg* gprsProfilePckg = + ( TPckg* ) aProfile; + RPacketQoS::TQoSR5Negotiated& gprsProfile = ( *gprsProfilePckg )(); + + gprsProfile.iTrafficClass = iQoSR5Negotiated.iTrafficClass; + gprsProfile.iDeliveryOrderReqd = + iQoSR5Negotiated.iDeliveryOrderReqd; + gprsProfile.iDeliverErroneousSDU = + iQoSR5Negotiated.iDeliverErroneousSDU; + gprsProfile.iMaxSDUSize = iQoSR5Negotiated.iMaxSDUSize; + gprsProfile.iMaxRate = iQoSR5Negotiated.iMaxRate; + gprsProfile.iBER = iQoSR5Negotiated.iBER; + gprsProfile.iSDUErrorRatio = iQoSR5Negotiated.iSDUErrorRatio; + gprsProfile.iTrafficHandlingPriority = + iQoSR5Negotiated.iTrafficHandlingPriority; + gprsProfile.iTransferDelay = iQoSR5Negotiated.iTransferDelay; + gprsProfile.iGuaranteedRate = iQoSR5Negotiated.iGuaranteedRate; + gprsProfile.iSignallingIndication = + iQoSR5Negotiated.iSignallingIndication; + gprsProfile.iSourceStatisticsDescriptor = + iQoSR5Negotiated.iSourceStatisticsDescriptor; + } + + else + { + return KErrNotSupported; + } + + return KErrNone; + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::NotifyProfileChanged +// Saves new profile internally +//---------------------------------------------------------------------------- + +TInt CMmPacketQoSGsmWcdmaExt::NotifyProfileChanged( + TDes8* aProfile ) + { + + TPckg* profilePckg = + ( TPckg* ) aProfile; + TPacketDataConfigBase& profile = ( *profilePckg )(); + + if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() || + TPacketDataConfigBase::KConfigRel99Rel4 == profile.ExtensionId()|| + TPacketDataConfigBase::KConfigRel5 == profile.ExtensionId() ) + { + iQoSGPRSNotifyPckg = aProfile; + return KErrNone; + } + + return KErrNotSupported; + + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::NotifyProfileChangedCancel +// Clears internally saved profile +//---------------------------------------------------------------------------- + +void CMmPacketQoSGsmWcdmaExt::NotifyProfileChangedCancel() + { +TFLOGSTRING( "TSY: CMmPacketQoSGsmWcdmaExt::NotifyProfileChangedCancel." ); + + iQoSGPRSNotifyPckg = NULL; + + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::SetProfileParametersL +// Sends request for profile parameters to network +//---------------------------------------------------------------------------- + +TInt CMmPacketQoSGsmWcdmaExt::SetProfileParametersL( + TDes8* aProfile ) + { +TFLOGSTRING2("TSY: CMmPacketQoSGsmWcdmaExt::SetProfileParametersL. \t aProfile:%d", aProfile ); + + //Datapackage + CMmDataPackage data; + + // Initialize parameters + TInfoName contextName; + RPacketContext::TProtocolType pdpType; + TBool contextType( EFalse ); + TInfoName primaryContextName; + + //Get context configuration information + TInt ret = iMmPacketQoSTsy->PacketContextTsy()-> + PacketContextGsmWcdmaExt()->GetConfigurationData( + contextName, pdpType, contextType, primaryContextName ); + + //Get context status + RPacketContext::TContextStatus contextStatus = + iMmPacketQoSTsy->PacketContextTsy()->ContextStatus(); + + //initialize contextParams struct + TContextParams contextParams; + + contextParams.iContextName = contextName; + contextParams.iContextType = contextType; + contextParams.iPdpType = pdpType; + contextParams.iPrimaryContextName = primaryContextName; + contextParams.iContextStatus = contextStatus; + + TPckg* profilePckg = + ( TPckg* ) aProfile; + TPacketDataConfigBase& profile = ( *profilePckg )(); + + //Save what client has requested + if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() ) + { + TPckg* gprsProfilePckg = + ( TPckg* ) aProfile; + RPacketQoS::TQoSGPRSRequested& gprsProfile =( *gprsProfilePckg )(); + iRequested = gprsProfile; + iConfigurationType = TPacketDataConfigBase::KConfigGPRS; + + iQoSGPRSRequested = ETrue; + } + else if ( TPacketDataConfigBase::KConfigRel99Rel4 == profile.ExtensionId() ) + { + TPckg* gprsProfilePckg = + ( TPckg* ) aProfile; + RPacketQoS::TQoSR99_R4Requested& gprsProfile = ( *gprsProfilePckg )(); + iRequested99 = gprsProfile; + iConfigurationType = TPacketDataConfigBase::KConfigRel99Rel4; + + iQoSR99_R4Requested = ETrue; + } + else if ( TPacketDataConfigBase::KConfigRel5 == profile.ExtensionId() ) + { +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::SetProfileParameters. Rel 5"); + TPckg* gprsProfilePckg = + ( TPckg* ) aProfile; + RPacketQoS::TQoSR5Requested& gprsProfile = ( *gprsProfilePckg )(); + iRequestedR5 = gprsProfile; + iConfigurationType = TPacketDataConfigBase::KConfigRel5; + + iQoSR5Requested = ETrue; + } + else + { + ret = KErrNotSupported; + } + + + if ( KErrNone == ret ) + { + + data.PackData( &contextParams, &aProfile ); + TInt err = iMmPacketService->MessageManager()->HandleRequestL( + EPacketQoSSetProfileParams, &data ); + + if ( KErrNone != err ) + { + ret = KErrNotSupported; + } + + iQosAsked = ETrue; + } + + else + { + ret = KErrNotSupported; + } + + return ret; + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters +// Completes SetProfileParameters request to client +//---------------------------------------------------------------------------- + +void CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters( + const TInt aErrorValue ) + { +TFLOGSTRING2("TSY: CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters. \t aErrorValue:%d", aErrorValue ); + + // Call CompleteSetProfileParameters from QoS Tsy + iMmPacketQoSTsy->CompleteSetProfileParameters( aErrorValue ); + + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::CompleteSetProfileParameters +// Completes the notification to client. +// save negotiated qos values (values returned by network) +//---------------------------------------------------------------------------- + +void CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged( + CMmDataPackage* aDataPackage ) + { + + TInfoName mmPacketContextName; + + const CMmPacketDataPackage* data = + reinterpret_cast(aDataPackage); + //Get Qos parameters + data->GetProfileChanged( iQoSGPRSNegotiated, iQoSR99_R4Negotiated, + iQoSR5Negotiated ); + //Unpack data from datapackage + data->UnPackData( mmPacketContextName ); + + + + +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged . COPY new R99/R4 default values"); + //Copy negotiated values to minimun values + iRequested99.iMinTrafficClass = iQoSR99_R4Negotiated.iTrafficClass; + iRequested99.iMinDeliveryOrderReqd = + + + iQoSR99_R4Negotiated.iDeliveryOrderReqd; + iRequested99.iMinDeliverErroneousSDU = + + + iQoSR99_R4Negotiated.iDeliverErroneousSDU; + iRequested99.iMinAcceptableMaxSDUSize = + + + iQoSR99_R4Negotiated.iMaxSDUSize; + iRequested99.iMinAcceptableMaxRate = iQoSR99_R4Negotiated.iMaxRate; + iRequested99.iMaxBER = iQoSR99_R4Negotiated.iBER; + iRequested99.iMaxSDUErrorRatio = iQoSR99_R4Negotiated.iSDUErrorRatio; + iRequested99.iMinTrafficHandlingPriority = + + + iQoSR99_R4Negotiated.iTrafficHandlingPriority; + iRequested99.iMaxTransferDelay = iQoSR99_R4Negotiated.iTransferDelay; + iRequested99.iMinGuaranteedRate = + + + iQoSR99_R4Negotiated.iGuaranteedRate; + + //Copy negotiated values to requested values for default usage of 2nd + //context TFT modify + iRequested99.iReqTrafficClass = iQoSR99_R4Negotiated.iTrafficClass; + iRequested99.iReqDeliveryOrderReqd = + + + iQoSR99_R4Negotiated.iDeliveryOrderReqd; + iRequested99.iReqDeliverErroneousSDU = + + + iQoSR99_R4Negotiated.iDeliverErroneousSDU; + iRequested99.iReqMaxSDUSize = iQoSR99_R4Negotiated.iMaxSDUSize; + iRequested99.iReqMaxRate = iQoSR99_R4Negotiated.iMaxRate; + iRequested99.iReqBER = iQoSR99_R4Negotiated.iBER; + iRequested99.iReqSDUErrorRatio = iQoSR99_R4Negotiated.iSDUErrorRatio; + iRequested99.iReqTrafficHandlingPriority = + + + iQoSR99_R4Negotiated.iTrafficHandlingPriority; + iRequested99.iReqTransferDelay = iQoSR99_R4Negotiated.iTransferDelay; + iRequested99.iReqGuaranteedRate = iQoSR99_R4Negotiated.iGuaranteedRate; + + +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged . COPY new R97 default values"); + iRequested.iReqPrecedence = iQoSGPRSNegotiated.iPrecedence; + iRequested.iMinPrecedence = iQoSGPRSNegotiated.iPrecedence; + + iRequested.iReqDelay = iQoSGPRSNegotiated.iDelay; + iRequested.iMinDelay = iQoSGPRSNegotiated.iDelay; + + iRequested.iReqReliability = iQoSGPRSNegotiated.iReliability; + iRequested.iMinReliability = iQoSGPRSNegotiated.iReliability; + + iRequested.iReqPeakThroughput = iQoSGPRSNegotiated.iPeakThroughput; + iRequested.iMinPeakThroughput = iQoSGPRSNegotiated.iPeakThroughput; + + iRequested.iReqMeanThroughput = iQoSGPRSNegotiated.iMeanThroughput; + iRequested.iMinMeanThroughput = iQoSGPRSNegotiated.iMeanThroughput; + + + +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged . COPY new R5 default values"); + + //Copy negotiated values to minimun values + iRequestedR5.iMinTrafficClass = iQoSR5Negotiated.iTrafficClass; + iRequestedR5.iMinDeliveryOrderReqd = + iQoSR5Negotiated.iDeliveryOrderReqd; + iRequestedR5.iMinDeliverErroneousSDU = + iQoSR5Negotiated.iDeliverErroneousSDU; + iRequestedR5.iMinAcceptableMaxSDUSize = + iQoSR5Negotiated.iMaxSDUSize; + iRequestedR5.iMinAcceptableMaxRate = iQoSR5Negotiated.iMaxRate; + iRequestedR5.iMaxBER = iQoSR5Negotiated.iBER; + iRequestedR5.iMaxSDUErrorRatio = iQoSR5Negotiated.iSDUErrorRatio; + iRequestedR5.iMinTrafficHandlingPriority = + iQoSR5Negotiated.iTrafficHandlingPriority; + iRequestedR5.iMaxTransferDelay = iQoSR5Negotiated.iTransferDelay; + iRequestedR5.iMinGuaranteedRate = iQoSR5Negotiated.iGuaranteedRate; + + //Copy negotiated values to requested values for default usage of 2nd + //context TFT modify + iRequestedR5.iReqTrafficClass = iQoSR5Negotiated.iTrafficClass; + iRequestedR5.iReqDeliveryOrderReqd = + iQoSR5Negotiated.iDeliveryOrderReqd; + iRequestedR5.iReqDeliverErroneousSDU = + iQoSR5Negotiated.iDeliverErroneousSDU; + iRequestedR5.iReqMaxSDUSize = iQoSR5Negotiated.iMaxSDUSize; + iRequestedR5.iReqMaxRate = iQoSR5Negotiated.iMaxRate; + iRequestedR5.iReqBER = iQoSR5Negotiated.iBER; + iRequestedR5.iReqSDUErrorRatio = iQoSR5Negotiated.iSDUErrorRatio; + iRequestedR5.iReqTrafficHandlingPriority = + iQoSR5Negotiated.iTrafficHandlingPriority; + iRequestedR5.iReqTransferDelay = iQoSR5Negotiated.iTransferDelay; + iRequestedR5.iReqGuaranteedRate = iQoSR5Negotiated.iGuaranteedRate; + iRequestedR5.iSignallingIndication = + iQoSR5Negotiated.iSignallingIndication; + + + iRequestedR5.iSourceStatisticsDescriptor = + iQoSR5Negotiated.iSourceStatisticsDescriptor; + + // If pointer iQoSGPRSNotifyPckg exist + if ( NULL != iQoSGPRSNotifyPckg ) + { + TBool completeToClient( EFalse ); + + TPckg* profilePckg = + ( TPckg* ) iQoSGPRSNotifyPckg; + TPacketDataConfigBase& profile = ( *profilePckg )(); + + // if client uses R97 QoS parameters and aQoSNegotiated + // have been set + if ( TPacketDataConfigBase::KConfigGPRS == profile.ExtensionId() && + iQoSGPRSRequested ) + { + completeToClient = ETrue; + + TPckg* gprsProfilePckg = + ( TPckg* ) iQoSGPRSNotifyPckg; + RPacketQoS::TQoSGPRSNegotiated& gprsProfile = + ( *gprsProfilePckg )(); + + // Update the client side data through pointers + gprsProfile = iQoSGPRSNegotiated; + +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged. R97/98 QoS Parameters in use"); + } + + // if client uses R99 QoS parameters and aQoS99Negotiated + // have been set + else if ( TPacketDataConfigBase::KConfigRel99Rel4 == + profile.ExtensionId() && iQoSR99_R4Requested ) + { + completeToClient = ETrue; + + TPckg* gprsProfilePckg = + ( TPckg* ) iQoSGPRSNotifyPckg; + RPacketQoS::TQoSR99_R4Negotiated& gprsProfile = + ( *gprsProfilePckg )(); + + // Update the client side data through pointers + gprsProfile = iQoSR99_R4Negotiated; +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged. R99/R4 QoS Parameters in use"); + + } + + else if ( TPacketDataConfigBase::KConfigRel5 == + profile.ExtensionId() && iQoSR5Requested ) + { + completeToClient = ETrue; + + TPckg* gprsProfilePckg = + ( TPckg* ) iQoSGPRSNotifyPckg; + RPacketQoS::TQoSR5Negotiated& gprsProfile = + ( *gprsProfilePckg )(); + + // Update the client side data through pointers + gprsProfile = iQoSR5Negotiated; +TFLOGSTRING("TSY: CMmPacketQoSGsmWcdmaExt::CompleteNotifyProfileChanged. R5 QoS Parameters in use"); + } + + if ( completeToClient ) + { + + // Null pointers as notification is completed + iQoSGPRSNotifyPckg = NULL; + + // Call CompleteNotifyProfileChanged from TSY + iMmPacketQoSTsy->CompleteNotifyProfileChanged(); + + } + } + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::ProfileAsked +// Return value iQosAsked is true if client has request +// certain Qos values +//---------------------------------------------------------------------------- + +TBool CMmPacketQoSGsmWcdmaExt::ProfileAsked() + { + return iQosAsked; + } + + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::RequestedR5 +// Returns Rel5 Qos values reguested by client +//---------------------------------------------------------------------------- +RPacketQoS::TQoSR5Requested* CMmPacketQoSGsmWcdmaExt::RequestedR5() + + { + return &iRequestedR5; + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::Requested99 +// Returns 99 Qos values reguested by client +//---------------------------------------------------------------------------- + +RPacketQoS::TQoSR99_R4Requested* CMmPacketQoSGsmWcdmaExt::Requested99() + + { + return &iRequested99; + } + + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::Requested97 +// Returns 97/98 Qos values reguested by client +//---------------------------------------------------------------------------- + +RPacketQoS::TQoSGPRSRequested* CMmPacketQoSGsmWcdmaExt::Requested97() + { + return &iRequested; + } + +//---------------------------------------------------------------------------- +// CMmPacketQoSGsmWcdmaExt::ConfigurationType +// Returns return configuration type +//---------------------------------------------------------------------------- + +TInt CMmPacketQoSGsmWcdmaExt::ConfigurationType() const + { + return iConfigurationType; + } + + +// End of File