diff -r 7ec726f93df1 -r 489cf6208544 cmmanager/cmmgr/cmmplugins/cmpluginpacketdata/src/cmpluginpacketdata.cpp --- a/cmmanager/cmmgr/cmmplugins/cmpluginpacketdata/src/cmpluginpacketdata.cpp Fri May 14 16:15:46 2010 +0300 +++ b/cmmanager/cmmgr/cmmplugins/cmpluginpacketdata/src/cmpluginpacketdata.cpp Thu May 27 13:17:01 2010 +0300 @@ -17,11 +17,12 @@ */ -#include -#include +#include +#include #include #include +#include "datamobilitycommsdattypes.h" #include "cmpluginpacketdata.h" #include "OstTraceDefinitions.h" @@ -34,9 +35,7 @@ // ================= CONSTANTS ======================= -const TUint32 KDefaultPriorityPacketData = 1; - -/// Modem bearer names for GPRS/WCDMA Access Points +/// Modem bearer names for GPRS/WCDMA access points. _LIT( KModemBearerPacketData, "GPRS Modem" ); _LIT( KDefaultQosDataRecordName, "PRIMARY1" ); _LIT( KDefaultQosDataRecordNamewithSpace, "PRIMARY1 " ); @@ -313,6 +312,16 @@ FeatureManager::InitializeLibL(); CCmPluginBaseEng::ConstructL(); + // Get bearer priority table ID. + TRAP_IGNORE( iBearerPriorityTableId = + CCDGlobalBearerTypePriorizationRecord::TableIdL( iSession ) ); + + if ( !iBearerPriorityTableId ) + { + iBearerPriorityTableId = + CCDGlobalBearerTypePriorizationRecord::CreateTableL( iSession ); + } + OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CONSTRUCTL_EXIT ); } @@ -385,11 +394,13 @@ { OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_PREPAREPLUGINTOUPDATERECORDSL_ENTRY ); - CCDIAPRecord* iapRecord = - static_cast( aGenRecordArray[KIapRecordIndex] ); - - CCDWCDMAPacketServiceRecord* serviceRecord = - static_cast( aGenRecordArray[KServiceRecordIndex] ); + //TODO, Add null checks for mandatory specific record pointers. + + CCDIAPRecord* iapRecord = static_cast( + aGenRecordArray[KIapRecordIndex] ); + + CCDWCDMAPacketServiceRecord* serviceRecord = static_cast( + aGenRecordArray[KServiceRecordIndex] ); CheckIfNameModifiedL( iapRecord, serviceRecord ); @@ -418,7 +429,7 @@ { OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETDAEMONNAMEL_ENTRY ); - // use DHCP if we can + // Use DHCP if we can. TBool ipfromSrv = GetBearerBoolAttributeL( EPacketDataIPAddrFromServer, aGenRecordArray, aBearerSpecRecordArray ); @@ -1231,9 +1242,13 @@ } break; case ECmDefaultUiPriority: + { + retVal = GetDefPriorityL( aAttribute ); + } + break; case ECmDefaultPriority: { - retVal = KDefaultPriorityPacketData; + retVal = GetDefPriorityL( aAttribute ); } break; case ECmExtensionLevel: @@ -2492,11 +2507,14 @@ retVal = KCommDbBearerWcdma; } break; - case ECmDefaultUiPriority: + { + retVal = GetDefPriorityL( aAttribute ); + } + break; case ECmDefaultPriority: { - retVal = KDefaultPriorityPacketData; + retVal = GetDefPriorityL( aAttribute ); } break; case ECmExtensionLevel: @@ -2984,4 +3002,46 @@ OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERTABLEIDSTOBEOBSERVEDL_EXIT ); } +// --------------------------------------------------------------------------- +// CCmPluginPacketData::GetDefPriorityL +// --------------------------------------------------------------------------- +// +TUint32 CCmPluginPacketData::GetDefPriorityL( const TUint32 aAttribute ) const + { + OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETDEFPRIORITYL_ENTRY ); + + TUint32 retVal( KDataMobilitySelectionPolicyPriorityWildCard ); + + CCDGlobalBearerTypePriorizationRecord* priorityRecord = + new( ELeave ) CCDGlobalBearerTypePriorizationRecord( iBearerPriorityTableId ); + CleanupStack::PushL( priorityRecord ); + + priorityRecord->iServiceType.SetL( TPtrC( KCDTypeNameOutgoingWCDMA ) ); + + if ( priorityRecord->FindL( iSession ) ) + { + priorityRecord->LoadL( iSession ); + + switch ( aAttribute ) + { + case ECmDefaultPriority: + { + retVal = priorityRecord->iPriority; + } + break; + case ECmDefaultUiPriority: + { + retVal = priorityRecord->iUIPriority; + } + break; + default: + break; + } + } + CleanupStack::PopAndDestroy( priorityRecord ); + + OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETDEFPRIORITYL_EXIT ); + return retVal; + } + // End of file