diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/common_tsy/commontsy/src/mmpacket/cmmpacketqosgsmwcdmaext.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmpacket/cmmpacketqosgsmwcdmaext.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +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