--- 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 <stringloader.h>
-#include <FeatMgr.h>
+#include <StringLoader.h>
+#include <featmgr.h>
#include <centralrepository.h>
#include <CoreApplicationUIsSDKCRKeys.h>
+#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<CCDIAPRecord*>( aGenRecordArray[KIapRecordIndex] );
-
- CCDWCDMAPacketServiceRecord* serviceRecord =
- static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
+ //TODO, Add null checks for mandatory specific record pointers.
+
+ CCDIAPRecord* iapRecord = static_cast<CCDIAPRecord*>(
+ aGenRecordArray[KIapRecordIndex] );
+
+ CCDWCDMAPacketServiceRecord* serviceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
+ 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