cmmanager/cmmgr/cmmplugins/cmpluginpacketdata/src/cmpluginpacketdata.cpp
changeset 20 9c97ad6591ae
child 23 7ec726f93df1
equal deleted inserted replaced
18:fcbbe021d614 20:9c97ad6591ae
       
     1 /*
       
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *      Implementation of packetdata Plugin interface.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 #include <stringloader.h>
       
    21 #include <FeatMgr.h>
       
    22 #include <centralrepository.h>
       
    23 #include <CoreApplicationUIsSDKCRKeys.h>
       
    24 
       
    25 #include "cmpluginpacketdata.h"
       
    26 
       
    27 #include "OstTraceDefinitions.h"
       
    28 #ifdef OST_TRACE_COMPILER_IN_USE
       
    29 #include "cmpluginpacketdataTraces.h"
       
    30 #endif
       
    31 
       
    32 using namespace CMManager;
       
    33 using namespace CommsDat;
       
    34 
       
    35 // ================= CONSTANTS =======================
       
    36 
       
    37 const TUint32 KDefaultPriorityPacketData = 1;
       
    38 
       
    39 /// Modem bearer names for GPRS/WCDMA Access Points
       
    40 _LIT( KModemBearerPacketData, "GPRS Modem" );
       
    41 _LIT( KDefaultQosDataRecordName, "PRIMARY1" );
       
    42 _LIT( KDefaultQosDataRecordNamewithSpace, "PRIMARY1 " );
       
    43 
       
    44 const TInt KQosRecordIndex = 0;
       
    45 
       
    46 // ======== MEMBER FUNCTIONS ========
       
    47 /**
       
    48 *  CCmPDCoverageCheck defines the functionality for packetdata service
       
    49 *  coverage checking.
       
    50 */
       
    51 class CCmPDCoverageCheck : public CActive
       
    52     {
       
    53     public:
       
    54         /**
       
    55          * Constructor.
       
    56          */
       
    57         CCmPDCoverageCheck();
       
    58 
       
    59         /**
       
    60          * Destructor.
       
    61          */
       
    62         ~CCmPDCoverageCheck();
       
    63 
       
    64         /**
       
    65          * Checks if the packet service is available(status is
       
    66          * ERegisteredOnHomeNetwork or ERegisteredRoaming or
       
    67          * ENotRegisteredButAvailable)
       
    68          * @return Return ETrue if the status is one mentioned above.
       
    69          * Otherwise returns EFalse.
       
    70          */
       
    71         TBool IsThereCoverageL();
       
    72 
       
    73     protected:  // from CActive
       
    74         virtual void DoCancel();
       
    75         virtual void RunL();
       
    76 
       
    77     private:
       
    78         /**
       
    79          * Ckecks if the phode mode is offline.
       
    80          * @return Returns ETrue if the phone is in offline mode.
       
    81          * Otherwise returns EFalse.
       
    82          */
       
    83         TBool IsPhoneOfflineL() const;
       
    84 
       
    85     private:
       
    86         /** Boolean which has the latest coverage information  */
       
    87         TBool                   iCoverage;
       
    88 
       
    89         /** Controller for single scheduling loop */
       
    90         CActiveSchedulerWait    iWait;
       
    91 
       
    92         /** Handle to telephony server */
       
    93         RTelServer              iServer;
       
    94 
       
    95         /** Handle to phone(needed for packet service) */
       
    96         RPhone                  iPhone;
       
    97 
       
    98         /** Handle to packet service */
       
    99         RPacketService          iService;
       
   100 
       
   101         /** Network registration status information */
       
   102         RPacketService::TRegistrationStatus iNwRegStatus;
       
   103     };
       
   104 
       
   105 // ----------------------------------------------------------------------------
       
   106 // CCmPDCoverageCheck::CCmPDCoverageCheck()
       
   107 // ----------------------------------------------------------------------------
       
   108 //
       
   109 CCmPDCoverageCheck::CCmPDCoverageCheck() : CActive( EPriorityStandard )
       
   110     {
       
   111     OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_ENTRY );
       
   112 
       
   113     CActiveScheduler::Add( this );
       
   114 
       
   115     OstTraceFunctionExit0( CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_EXIT );
       
   116     }
       
   117 
       
   118 // ----------------------------------------------------------------------------
       
   119 // CCmPDCoverageCheck::~CCmPDCoverageCheck()
       
   120 // ----------------------------------------------------------------------------
       
   121 //
       
   122 CCmPDCoverageCheck::~CCmPDCoverageCheck()
       
   123     {
       
   124     OstTraceFunctionEntry0( DUP1_CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_ENTRY );
       
   125 
       
   126     Cancel();
       
   127 
       
   128     iService.Close();
       
   129     iPhone.Close();
       
   130     iServer.Close();
       
   131 
       
   132     OstTraceFunctionExit0( DUP1_CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_EXIT );
       
   133     }
       
   134 
       
   135 // ----------------------------------------------------------------------------
       
   136 // CCmPDCoverageCheck::DoCancel
       
   137 // ----------------------------------------------------------------------------
       
   138 //
       
   139 void CCmPDCoverageCheck::DoCancel()
       
   140     {
       
   141     OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_DOCANCEL_ENTRY );
       
   142 
       
   143     iWait.AsyncStop();
       
   144 
       
   145     OstTraceFunctionExit0( CCMPDCOVERAGECHECK_DOCANCEL_EXIT );
       
   146     }
       
   147 
       
   148 // ----------------------------------------------------------------------------
       
   149 // CCmPDCoverageCheck::RunL
       
   150 // ----------------------------------------------------------------------------
       
   151 //
       
   152 void CCmPDCoverageCheck::RunL()
       
   153     {
       
   154     OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_RUNL_ENTRY );
       
   155 
       
   156     if ( iStatus.Int() == KErrNone )
       
   157         {
       
   158         if ( iNwRegStatus == RPacketService::ERegisteredOnHomeNetwork ||
       
   159              iNwRegStatus == RPacketService::ERegisteredRoaming ||
       
   160              iNwRegStatus == RPacketService::ENotRegisteredButAvailable )
       
   161             {
       
   162             iCoverage = ETrue;
       
   163             }
       
   164         iWait.AsyncStop();
       
   165         }
       
   166     else
       
   167         // something went wrong -> no coverage.
       
   168         {
       
   169         iWait.AsyncStop();
       
   170         }
       
   171 
       
   172     OstTraceFunctionExit0( CCMPDCOVERAGECHECK_RUNL_EXIT );
       
   173     }
       
   174 
       
   175 // ----------------------------------------------------------------------------
       
   176 // CCmPDCoverageCheck::IsThereCoverageL
       
   177 // ----------------------------------------------------------------------------
       
   178 //
       
   179 TBool CCmPDCoverageCheck::IsThereCoverageL()
       
   180     {
       
   181     OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_ISTHERECOVERAGEL_ENTRY );
       
   182 
       
   183     iCoverage = EFalse;
       
   184 
       
   185     if ( !IsPhoneOfflineL() )
       
   186         {
       
   187         User::LeaveIfError( iServer.Connect() );
       
   188 
       
   189         RTelServer::TPhoneInfo info;
       
   190         User::LeaveIfError( iServer.GetPhoneInfo( 0, info ) );
       
   191 
       
   192         User::LeaveIfError( iPhone.Open(iServer, info.iName ) );
       
   193 
       
   194         User::LeaveIfError( iService.Open( iPhone ) );
       
   195 
       
   196         iService.GetNtwkRegStatus( iStatus, iNwRegStatus );
       
   197         SetActive();
       
   198         iWait.Start();
       
   199 
       
   200         User::LeaveIfError( iStatus.Int() );
       
   201         }
       
   202 
       
   203     OstTraceFunctionExit0( CCMPDCOVERAGECHECK_ISTHERECOVERAGEL_EXIT );
       
   204     return iCoverage;
       
   205     }
       
   206 
       
   207 // ----------------------------------------------------------------------------
       
   208 // CCmPDCoverageCheck::IsPhoneOfflineL
       
   209 // ----------------------------------------------------------------------------
       
   210 //
       
   211 TBool CCmPDCoverageCheck::IsPhoneOfflineL() const
       
   212     {
       
   213     OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_ISPHONEOFFLINEL_ENTRY );
       
   214 
       
   215     if ( FeatureManager::FeatureSupported( KFeatureIdOfflineMode ) )
       
   216         {
       
   217         CRepository* repository = CRepository::NewLC( KCRUidCoreApplicationUIs );
       
   218         TInt connAllowed( ECoreAppUIsNetworkConnectionAllowed );
       
   219 
       
   220         repository->Get( KCoreAppUIsNetworkConnectionAllowed, connAllowed );
       
   221         CleanupStack::PopAndDestroy( repository );
       
   222 
       
   223         if ( !connAllowed )
       
   224             {
       
   225             OstTraceFunctionExit0( CCMPDCOVERAGECHECK_ISPHONEOFFLINEL_EXIT );
       
   226             return ETrue;
       
   227             }
       
   228         }
       
   229 
       
   230     OstTraceFunctionExit0( DUP1_CCMPDCOVERAGECHECK_ISPHONEOFFLINEL_EXIT );
       
   231     return EFalse;
       
   232     }
       
   233 
       
   234 // ----------------------------------------------------------------------------
       
   235 // CCmPluginPacketData::NewL
       
   236 // ----------------------------------------------------------------------------
       
   237 //
       
   238 CCmPluginPacketData* CCmPluginPacketData::NewL(
       
   239         TCmPluginInitParam* aInitParam )
       
   240     {
       
   241     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_NEWL_ENTRY );
       
   242 
       
   243     CCmPluginPacketData* self = new( ELeave ) CCmPluginPacketData( aInitParam, ETrue );
       
   244     CleanupStack::PushL( self );
       
   245     self->ConstructL();
       
   246     CleanupStack::Pop( self );
       
   247 
       
   248     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_NEWL_EXIT );
       
   249     return self;
       
   250     }
       
   251 
       
   252 // ----------------------------------------------------------------------------
       
   253 // CCmPluginPacketData::~CCmPluginPacketData
       
   254 // ----------------------------------------------------------------------------
       
   255 //
       
   256 CCmPluginPacketData::~CCmPluginPacketData()
       
   257     {
       
   258     OstTraceFunctionEntry1( CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_ENTRY, this );
       
   259 
       
   260     ResetBearerRecords();
       
   261 
       
   262     FeatureManager::UnInitializeLib();
       
   263 
       
   264     OstTraceFunctionExit1( CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_EXIT, this );
       
   265     }
       
   266 
       
   267 // ----------------------------------------------------------------------------
       
   268 // CCmPluginPacketData::CreateInstanceL
       
   269 // ----------------------------------------------------------------------------
       
   270 //
       
   271 CCmPluginBaseEng* CCmPluginPacketData::CreateInstanceL( TCmPluginInitParam& aInitParam ) const
       
   272     {
       
   273     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CREATEINSTANCEL_ENTRY );
       
   274 
       
   275     CCmPluginPacketData* self = new( ELeave ) CCmPluginPacketData( &aInitParam, ETrue );
       
   276     CleanupStack::PushL( self );
       
   277     self->ConstructL();
       
   278     CleanupStack::Pop( self );
       
   279 
       
   280     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CREATEINSTANCEL_EXIT );
       
   281     return self;
       
   282     }
       
   283 
       
   284 // ----------------------------------------------------------------------------
       
   285 // CCmPluginPacketData::CCmPluginPacketData
       
   286 // ----------------------------------------------------------------------------
       
   287 //
       
   288 CCmPluginPacketData::CCmPluginPacketData(
       
   289         TCmPluginInitParam* aInitParam,
       
   290         TBool aOutgoing )
       
   291         :
       
   292         CCmPluginBaseEng( aInitParam ),
       
   293         iOutgoing( aOutgoing )
       
   294     {
       
   295     OstTraceFunctionEntry0( DUP1_CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_ENTRY );
       
   296 
       
   297     iBearerType = KUidPacketDataBearerType;
       
   298     iBearerRecordId = 0;
       
   299     iBearerRecordName = NULL;
       
   300     iPacketDataQoSRecord = NULL;
       
   301 
       
   302     OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_EXIT );
       
   303     }
       
   304 
       
   305 // ----------------------------------------------------------------------------
       
   306 // CCmPluginPacketData::ConstructL
       
   307 // ----------------------------------------------------------------------------
       
   308 //
       
   309 void CCmPluginPacketData::ConstructL()
       
   310     {
       
   311     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CONSTRUCTL_ENTRY );
       
   312 
       
   313     FeatureManager::InitializeLibL();
       
   314     CCmPluginBaseEng::ConstructL();
       
   315 
       
   316     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CONSTRUCTL_EXIT );
       
   317     }
       
   318 
       
   319 // ----------------------------------------------------------------------------
       
   320 // CCmPluginPacketData::CanHandleIapIdL()
       
   321 // ----------------------------------------------------------------------------
       
   322 //
       
   323 TBool CCmPluginPacketData::CanHandleIapIdL( TUint32 aIapId ) const
       
   324     {
       
   325     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_ENTRY );
       
   326 
       
   327     TBool retVal( EFalse );
       
   328 
       
   329     CCDIAPRecord *iapRecord = static_cast<CCDIAPRecord *>(
       
   330             CCDRecordBase::RecordFactoryL( KCDTIdIAPRecord ) );
       
   331 
       
   332     CleanupStack::PushL( iapRecord );
       
   333     iapRecord->SetRecordId( aIapId );
       
   334 
       
   335     TRAPD( err, iapRecord->LoadL( iSession ));
       
   336 
       
   337     if ( !err )
       
   338         {
       
   339         retVal = CanHandleIapIdL( iapRecord );
       
   340         }
       
   341 
       
   342     CleanupStack::PopAndDestroy( iapRecord );
       
   343 
       
   344     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_EXIT );
       
   345     return retVal;
       
   346     }
       
   347 
       
   348 // ----------------------------------------------------------------------------
       
   349 // CCmPluginPacketData::CanHandleIapIdL()
       
   350 // ----------------------------------------------------------------------------
       
   351 //
       
   352 TBool CCmPluginPacketData::CanHandleIapIdL( CCDIAPRecord *aIapRecord ) const
       
   353     {
       
   354     OstTraceFunctionEntry0( DUP1_CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_ENTRY );
       
   355 
       
   356     TBool retVal( EFalse );
       
   357 
       
   358     if ( (TPtrC(aIapRecord->iServiceType) == TPtrC(KCDTypeNameOutgoingWCDMA) ||
       
   359             TPtrC(aIapRecord->iServiceType) == TPtrC(KCDTypeNameIncomingWCDMA)) &&
       
   360             TPtrC(aIapRecord->iBearerType) == TPtrC(KCDTypeNameModemBearer) )
       
   361         {
       
   362         retVal = ETrue;
       
   363         }
       
   364 
       
   365 
       
   366     OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_EXIT );
       
   367     return retVal;
       
   368     }
       
   369 
       
   370 // ----------------------------------------------------------------------------
       
   371 // CCmPluginPacketData::PreparePluginToLoadRecordsL()
       
   372 // ----------------------------------------------------------------------------
       
   373 //
       
   374 void CCmPluginPacketData::PreparePluginToLoadRecordsL()
       
   375     {
       
   376     }
       
   377 
       
   378 // ---------------------------------------------------------------------------
       
   379 // CCmPluginPacketData::PreparePluginToUpdateRecordsL
       
   380 // ---------------------------------------------------------------------------
       
   381 //
       
   382 void CCmPluginPacketData::PreparePluginToUpdateRecordsL(
       
   383         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
   384         RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
   385     {
       
   386     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_PREPAREPLUGINTOUPDATERECORDSL_ENTRY );
       
   387 
       
   388     CCDIAPRecord* iapRecord =
       
   389                 static_cast<CCDIAPRecord*>( aGenRecordArray[KIapRecordIndex] );
       
   390 
       
   391     CCDWCDMAPacketServiceRecord* serviceRecord =
       
   392             static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
   393 
       
   394     CheckIfNameModifiedL( iapRecord, serviceRecord );
       
   395 
       
   396     CheckDNSServerAddressL( ETrue,
       
   397             serviceRecord->iGPRSIP6NameServer1,
       
   398             serviceRecord->iGPRSIP6NameServer2,
       
   399             serviceRecord->iGPRSIP6DNSAddrFromServer );
       
   400 
       
   401     CheckDNSServerAddressL( EFalse,
       
   402             serviceRecord->iGPRSIPNameServer1,
       
   403             serviceRecord->iGPRSIPNameServer2,
       
   404             serviceRecord->iGPRSIPDNSAddrFromServer );
       
   405 
       
   406     SetDaemonNameL( aGenRecordArray, aBearerSpecRecordArray );
       
   407 
       
   408     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_PREPAREPLUGINTOUPDATERECORDSL_EXIT );
       
   409     }
       
   410 
       
   411 // ---------------------------------------------------------------------------
       
   412 // CCmPluginPacketData::SetDaemonNameL
       
   413 // ---------------------------------------------------------------------------
       
   414 //
       
   415 void CCmPluginPacketData::SetDaemonNameL(
       
   416         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
   417         RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
   418     {
       
   419     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETDAEMONNAMEL_ENTRY );
       
   420 
       
   421     // use DHCP if we can
       
   422     TBool ipfromSrv = GetBearerBoolAttributeL( EPacketDataIPAddrFromServer,
       
   423                                                aGenRecordArray,
       
   424                                                aBearerSpecRecordArray );
       
   425     if ( ipfromSrv )
       
   426         {
       
   427         SetBearerStringAttributeL( ECmConfigDaemonManagerName,
       
   428                                    KDaemonManagerName,
       
   429                                    aGenRecordArray,
       
   430                                    aBearerSpecRecordArray );
       
   431         SetBearerStringAttributeL( ECmConfigDaemonName,
       
   432                                    KConfigDaemonName,
       
   433                                    aGenRecordArray,
       
   434                                    aBearerSpecRecordArray );
       
   435         }
       
   436     else
       
   437         {
       
   438         if ( FeatureManager::FeatureSupported( KFeatureIdIPv6 ) )
       
   439             {
       
   440             SetBearerStringAttributeL( ECmConfigDaemonManagerName,
       
   441                                        KDaemonManagerName,
       
   442                                        aGenRecordArray,
       
   443                                        aBearerSpecRecordArray );
       
   444             SetBearerStringAttributeL( ECmConfigDaemonName,
       
   445                                        KConfigDaemonName,
       
   446                                        aGenRecordArray,
       
   447                                        aBearerSpecRecordArray );
       
   448             }
       
   449         else
       
   450             {
       
   451             SetBearerStringAttributeL( ECmConfigDaemonManagerName,
       
   452                                        KNullDesC(),
       
   453                                        aGenRecordArray,
       
   454                                        aBearerSpecRecordArray );
       
   455             SetBearerStringAttributeL( ECmConfigDaemonName,
       
   456                                        KNullDesC(),
       
   457                                        aGenRecordArray,
       
   458                                        aBearerSpecRecordArray );
       
   459             }
       
   460         }
       
   461 
       
   462     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETDAEMONNAMEL_EXIT );
       
   463     }
       
   464 
       
   465 // ----------------------------------------------------------------------------
       
   466 // CCmPluginPacketData::LoadBearerRecordsL()
       
   467 // ----------------------------------------------------------------------------
       
   468 //
       
   469 void CCmPluginPacketData::LoadBearerRecordsL()
       
   470     {
       
   471     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_LOADBEARERRECORDSL_ENTRY );
       
   472 
       
   473     if ( ServiceRecord().iUmtsR99QoSAndOnTable )
       
   474         {
       
   475         iPacketDataQoSRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord *>(
       
   476                 CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
       
   477 
       
   478         iPacketDataQoSRecord->SetRecordId( ServiceRecord().iUmtsR99QoSAndOnTable );
       
   479         iPacketDataQoSRecord->LoadL( iSession );
       
   480         }
       
   481 
       
   482     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_LOADBEARERRECORDSL_EXIT );
       
   483     }
       
   484 
       
   485 // ----------------------------------------------------------------------------
       
   486 // CCmPluginPacketData::LoadServiceRecordL()
       
   487 // ----------------------------------------------------------------------------
       
   488 //
       
   489 void CCmPluginPacketData::LoadServiceRecordL()
       
   490     {
       
   491     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_LOADSERVICERECORDL_ENTRY );
       
   492 
       
   493     if ( TPtrC( KCDTypeNameOutgoingWCDMA ) == iIapRecord->iServiceType )
       
   494         {
       
   495         iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
   496                 CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
       
   497         iOutgoing = ETrue;
       
   498         }
       
   499     else if ( TPtrC( KCDTypeNameIncomingWCDMA ) == iIapRecord->iServiceType )
       
   500         {
       
   501         iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
   502                 CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
       
   503         iOutgoing = EFalse;
       
   504         }
       
   505     else
       
   506         // this IAP service is not supported by this plugin.
       
   507         {
       
   508         User::Leave( KErrNotSupported );
       
   509         }
       
   510 
       
   511     iServiceRecord->SetRecordId( iIapRecord->iService );
       
   512     TRAPD( err, iServiceRecord->LoadL( iSession ) );
       
   513     if ( err == KErrNotFound )
       
   514         // record not found -> create a default one
       
   515         {
       
   516         CreateServiceRecordL();
       
   517         }
       
   518 
       
   519     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_LOADSERVICERECORDL_EXIT );
       
   520     }
       
   521 
       
   522 // ----------------------------------------------------------------------------
       
   523 // CCmPluginPacketData::ServiceRecord()
       
   524 // ----------------------------------------------------------------------------
       
   525 //
       
   526 CCDWCDMAPacketServiceRecord& CCmPluginPacketData::ServiceRecord() const
       
   527     {
       
   528     return *static_cast<CCDWCDMAPacketServiceRecord*>( iServiceRecord );
       
   529     }
       
   530 
       
   531 // ----------------------------------------------------------------------------
       
   532 // CCmPluginPacketData::CreateServiceRecordL()
       
   533 // ----------------------------------------------------------------------------
       
   534 //
       
   535 void CCmPluginPacketData::CreateServiceRecordL()
       
   536     {
       
   537     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CREATESERVICERECORDL_ENTRY );
       
   538 
       
   539     delete iServiceRecord;
       
   540     iServiceRecord = NULL;
       
   541 
       
   542     if ( iOutgoing )
       
   543         {
       
   544         iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
   545                 CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
       
   546         }
       
   547     else
       
   548         {
       
   549         iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
   550                 CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
       
   551         }
       
   552 
       
   553     ServiceRecord().iGPRSAPN.SetL( KNullDesC );
       
   554     ServiceRecord().iGPRSPDPType.SetL( RPacketContext::EPdpTypeIPv4 );
       
   555     ServiceRecord().iGPRSReqPrecedence = 0;
       
   556     ServiceRecord().iGPRSReqDelay = 0;
       
   557     ServiceRecord().iGPRSReqReliability = 0;
       
   558     ServiceRecord().iGPRSReqPeakThroughput = 0;
       
   559     ServiceRecord().iGPRSReqMeanThroughput = 0;
       
   560     ServiceRecord().iGPRSMinPrecedence = 0;
       
   561     ServiceRecord().iGPRSMinDelay = 0;
       
   562     ServiceRecord().iGPRSMinReliability = 0;
       
   563     ServiceRecord().iGPRSMinPeakThroughput = 0;
       
   564     ServiceRecord().iGPRSMinMeanThroughput = 0;
       
   565     ServiceRecord().iGPRSDataCompression = 0;
       
   566     ServiceRecord().iGPRSHeaderCompression = 0;
       
   567     ServiceRecord().iGPRSAnonymousAccess = 0;
       
   568     ServiceRecord().iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv4 );
       
   569     ServiceRecord().iGPRSIfPromptForAuth = EFalse;
       
   570     ServiceRecord().iGPRSIfAuthRetries = 0;
       
   571     ServiceRecord().iGPRSIPGateway.SetL( KUnspecifiedIPv4 );
       
   572     ServiceRecord().iGPRSIPAddrFromServer = ETrue;
       
   573     ServiceRecord().iGPRSIPAddr.SetL( KUnspecifiedIPv4 );
       
   574     ServiceRecord().iGPRSIPDNSAddrFromServer = ETrue;
       
   575     ServiceRecord().iGPRSIPNameServer1.SetL( KUnspecifiedIPv4 );
       
   576     ServiceRecord().iGPRSIPNameServer2.SetL( KUnspecifiedIPv4 );
       
   577     ServiceRecord().iGPRSIP6DNSAddrFromServer = ETrue;
       
   578     ServiceRecord().iGPRSIP6NameServer1.SetL( KDynamicIpv6Address );
       
   579     ServiceRecord().iGPRSIP6NameServer2.SetL( KDynamicIpv6Address );
       
   580     ServiceRecord().iGPRSEnableLCPExtension = EFalse;
       
   581     ServiceRecord().iGPRSDisablePlainTextAuth = ETrue;
       
   582     ServiceRecord().iGPRSAPType = EPacketDataBoth;
       
   583     ServiceRecord().iGPRSQOSWarningTimeOut = TUint32(-1);
       
   584 
       
   585     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CREATESERVICERECORDL_EXIT );
       
   586     }
       
   587 
       
   588 // ----------------------------------------------------------------------------
       
   589 // CCmPluginPacketData::ServiceRecordId
       
   590 // ----------------------------------------------------------------------------
       
   591 //
       
   592 TUint32 CCmPluginPacketData::ServiceRecordId() const
       
   593     {
       
   594     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SERVICERECORDID_ENTRY );
       
   595 
       
   596     return ServiceRecord().RecordId();
       
   597     }
       
   598 
       
   599 // ----------------------------------------------------------------------------
       
   600 // CCmPluginPacketData::ServiceRecordIdLC
       
   601 // ----------------------------------------------------------------------------
       
   602 //
       
   603 void CCmPluginPacketData::ServiceRecordNameLC( HBufC* &aName )
       
   604     {
       
   605     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SERVICERECORDNAMELC_ENTRY );
       
   606 
       
   607     if ( iOutgoing )
       
   608         {
       
   609         aName = TPtrC( KCDTypeNameOutgoingWCDMA ).AllocLC();
       
   610         }
       
   611     else
       
   612         {
       
   613         aName = TPtrC( KCDTypeNameIncomingWCDMA ).AllocLC();
       
   614         }
       
   615 
       
   616     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SERVICERECORDNAMELC_EXIT );
       
   617     }
       
   618 
       
   619 // ----------------------------------------------------------------------------
       
   620 // CCmPluginPacketData::BearerRecordIdL()
       
   621 // ----------------------------------------------------------------------------
       
   622 //
       
   623 void CCmPluginPacketData::BearerRecordIdL( TUint32& aRecordId )
       
   624     {
       
   625     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_BEARERRECORDIDL_ENTRY );
       
   626 
       
   627     CMDBRecordSet<CCDModemBearerRecord>* bearerRS =
       
   628             new( ELeave ) CMDBRecordSet<CCDModemBearerRecord>( KCDTIdModemBearerRecord );
       
   629     CleanupStack::PushL( bearerRS );
       
   630 
       
   631     CCDModemBearerRecord* bearerRecord = static_cast<CCDModemBearerRecord *>(
       
   632             CCDRecordBase::RecordFactoryL( KCDTIdModemBearerRecord ) );
       
   633 
       
   634     CleanupStack::PushL( bearerRecord );
       
   635 
       
   636     bearerRecord->iRecordName.SetL( KModemBearerPacketData );
       
   637     bearerRS->iRecords.AppendL( bearerRecord );
       
   638     CleanupStack::Pop( bearerRecord );
       
   639 
       
   640     if ( bearerRS->FindL( iSession ) )
       
   641         {
       
   642         bearerRecord = static_cast<CCDModemBearerRecord*>( bearerRS->iRecords[0] );
       
   643         aRecordId = bearerRecord->RecordId();
       
   644         }
       
   645     else
       
   646         // bearer not found -> create dummy values
       
   647         {
       
   648         bearerRecord->SetRecordId( KCDNewRecordRequest );
       
   649         bearerRecord->StoreL( iSession );
       
   650 
       
   651         aRecordId = bearerRecord->RecordId();
       
   652         }
       
   653 
       
   654     CleanupStack::PopAndDestroy( bearerRS );
       
   655 
       
   656     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_BEARERRECORDIDL_EXIT );
       
   657     }
       
   658 
       
   659 // ----------------------------------------------------------------------------
       
   660 // CCmPluginPacketData::BearerRecordNameLC()
       
   661 // ----------------------------------------------------------------------------
       
   662 //
       
   663 void CCmPluginPacketData::BearerRecordNameLC( HBufC*& aBearerName )
       
   664     {
       
   665     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_BEARERRECORDNAMELC_ENTRY );
       
   666 
       
   667     aBearerName = TPtrC( KCDTypeNameModemBearer ).AllocLC();
       
   668 
       
   669     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_BEARERRECORDNAMELC_EXIT );
       
   670     }
       
   671 
       
   672 // ----------------------------------------------------------------------------
       
   673 // CCmPluginPacketData::CheckNetworkCoverageL()
       
   674 // ----------------------------------------------------------------------------
       
   675 //
       
   676 TBool CCmPluginPacketData::CheckNetworkCoverageL() const
       
   677     {
       
   678     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CHECKNETWORKCOVERAGEL_ENTRY );
       
   679 
       
   680     TBool retVal( EFalse );
       
   681 
       
   682 #ifdef __WINS__
       
   683     retVal = ETrue;
       
   684 #else
       
   685     CCmPDCoverageCheck* coverage = new( ELeave ) CCmPDCoverageCheck;
       
   686     CleanupStack::PushL( coverage );
       
   687 
       
   688     retVal = coverage->IsThereCoverageL();
       
   689 
       
   690     CleanupStack::PopAndDestroy( coverage );
       
   691 
       
   692 #endif  // __WINS
       
   693 
       
   694     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CHECKNETWORKCOVERAGEL_EXIT );
       
   695     return retVal;
       
   696     }
       
   697 
       
   698 // ----------------------------------------------------------------------------
       
   699 // CCmPluginPacketData::SetPDPTypeL()
       
   700 // ----------------------------------------------------------------------------
       
   701 //
       
   702 void CCmPluginPacketData::SetPDPTypeL(
       
   703         RPacketContext::TProtocolType aPdpType,
       
   704         CCDWCDMAPacketServiceRecord* aServiceRecord )
       
   705     {
       
   706     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETPDPTYPEL_ENTRY );
       
   707 
       
   708     if ( aPdpType == RPacketContext::EPdpTypeIPv6 )
       
   709         {
       
   710         aServiceRecord->iGPRSPDPType = RPacketContext::EPdpTypeIPv6;
       
   711         aServiceRecord->iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv6 );
       
   712         }
       
   713     else if ( aPdpType == RPacketContext::EPdpTypeIPv4 )
       
   714         {
       
   715         aServiceRecord->iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv4 );
       
   716         aServiceRecord->iGPRSPDPType = RPacketContext::EPdpTypeIPv4;
       
   717         }
       
   718     else
       
   719         {
       
   720         User::Leave( KErrArgument );
       
   721         }
       
   722 
       
   723     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETPDPTYPEL_EXIT );
       
   724     }
       
   725 
       
   726 // ---------------------------------------------------------------------------
       
   727 // CCmPluginPacketData::CreateBearerRecordsL
       
   728 // ---------------------------------------------------------------------------
       
   729 //
       
   730 void CCmPluginPacketData::CreateBearerRecordsL()
       
   731     {
       
   732     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CREATEBEARERRECORDSL_ENTRY );
       
   733 
       
   734     delete iPacketDataQoSRecord;
       
   735     iPacketDataQoSRecord = NULL;
       
   736 
       
   737     iPacketDataQoSRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord *>(
       
   738             CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
       
   739 
       
   740     iPacketDataQoSRecord->iGPRSReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
   741     iPacketDataQoSRecord->iGPRSMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
   742     iPacketDataQoSRecord->iGPRSReqDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
       
   743     iPacketDataQoSRecord->iGPRSMinDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
       
   744     iPacketDataQoSRecord->iGPRSReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
   745     iPacketDataQoSRecord->iGPRSMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
   746     iPacketDataQoSRecord->iGPRSReqMaxSDUSize = 0;
       
   747     iPacketDataQoSRecord->iGPRSMinAcceptableMaxSDUSize = 0;
       
   748     iPacketDataQoSRecord->iGPRSReqMaxUplinkRate = 0;
       
   749     iPacketDataQoSRecord->iGPRSReqMinUplinkRate = 0;
       
   750     iPacketDataQoSRecord->iGPRSReqMaxDownlinkRate = 0;
       
   751     iPacketDataQoSRecord->iGPRSReqMinDownlinkRate = 0;
       
   752     iPacketDataQoSRecord->iGPRSReqBER = RPacketQoS::EBERUnspecified;
       
   753     iPacketDataQoSRecord->iGPRSMaxBER = RPacketQoS::EBERUnspecified;
       
   754     iPacketDataQoSRecord->iGPRSReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
   755     iPacketDataQoSRecord->iGPRSMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
   756     iPacketDataQoSRecord->iGPRSReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
   757     iPacketDataQoSRecord->iGPRSMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
   758     iPacketDataQoSRecord->iGPRSReqTransferDelay = 0;
       
   759     iPacketDataQoSRecord->iGPRSMaxTransferDelay = 0;
       
   760     iPacketDataQoSRecord->iGPRSReqGuaranteedUplinkRate = 0;
       
   761     iPacketDataQoSRecord->iGPRSMinGuaranteedUplinkRate = 0;
       
   762     iPacketDataQoSRecord->iGPRSReqGuaranteedDownlinkRate = 0;
       
   763     iPacketDataQoSRecord->iGPRSMinGuaranteedDownlinkRate = 0;
       
   764     iPacketDataQoSRecord->iGPRSSignallingIndication = EFalse;
       
   765     iPacketDataQoSRecord->iGPRS_ImCnSignallingIndication = EFalse;
       
   766     iPacketDataQoSRecord->iGPRSSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
       
   767 
       
   768     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CREATEBEARERRECORDSL_EXIT );
       
   769     }
       
   770 
       
   771 // ---------------------------------------------------------------------------
       
   772 // CCmPluginPacketData::UpdateServiceRecordL
       
   773 // ---------------------------------------------------------------------------
       
   774 //
       
   775 void CCmPluginPacketData::UpdateServiceRecordL(
       
   776         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
   777         RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
       
   778     {
       
   779     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_UPDATESERVICERECORDL_ENTRY );
       
   780 
       
   781     // Delete the original record and create a copy from the parameter
       
   782     delete iServiceRecord;
       
   783     iServiceRecord = NULL;
       
   784 
       
   785     CCDWCDMAPacketServiceRecord* serviceRecord =
       
   786             static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
   787 
       
   788     if ( iOutgoing )
       
   789         {
       
   790         iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
   791                 CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
       
   792         }
       
   793     else
       
   794         {
       
   795         iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
   796                 CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
       
   797         }
       
   798 
       
   799     CCDWCDMAPacketServiceRecord* origServiceRecord =
       
   800             static_cast<CCDWCDMAPacketServiceRecord*>( iServiceRecord );
       
   801 
       
   802     iServiceRecord->SetElementId( serviceRecord->ElementId() );
       
   803     iServiceRecord->iRecordName.SetL( serviceRecord->iRecordName );
       
   804 
       
   805     if ( !serviceRecord->iServiceEnableLlmnr.IsNull() )
       
   806         {
       
   807         origServiceRecord->iServiceEnableLlmnr.SetL( serviceRecord->iServiceEnableLlmnr );
       
   808         }
       
   809 
       
   810     if ( !serviceRecord->iGPRSAPN.IsNull() )
       
   811         {
       
   812         origServiceRecord->iGPRSAPN.SetL( serviceRecord->iGPRSAPN );
       
   813         }
       
   814     if ( !serviceRecord->iGPRSPDPType.IsNull() )
       
   815         {
       
   816         origServiceRecord->iGPRSPDPType.SetL( serviceRecord->iGPRSPDPType );
       
   817         }
       
   818     if ( !serviceRecord->iGPRSPDPAddress.IsNull() )
       
   819         {
       
   820         origServiceRecord->iGPRSPDPAddress.SetL( serviceRecord->iGPRSPDPAddress );
       
   821         }
       
   822     if ( !serviceRecord->iGPRSReqPrecedence.IsNull() )
       
   823         {
       
   824         origServiceRecord->iGPRSReqPrecedence.SetL( serviceRecord->iGPRSReqPrecedence );
       
   825         }
       
   826     if ( !serviceRecord->iGPRSReqDelay.IsNull() )
       
   827         {
       
   828         origServiceRecord->iGPRSReqDelay.SetL( serviceRecord->iGPRSReqDelay );
       
   829         }
       
   830     if ( !serviceRecord->iGPRSReqReliability.IsNull() )
       
   831         {
       
   832         origServiceRecord->iGPRSReqReliability.SetL( serviceRecord->iGPRSReqReliability );
       
   833         }
       
   834     if ( !serviceRecord->iGPRSReqPeakThroughput.IsNull() )
       
   835         {
       
   836         origServiceRecord->iGPRSReqPeakThroughput.SetL( serviceRecord->iGPRSReqPeakThroughput );
       
   837         }
       
   838     if ( !serviceRecord->iGPRSReqMeanThroughput.IsNull() )
       
   839         {
       
   840         origServiceRecord->iGPRSReqMeanThroughput.SetL( serviceRecord->iGPRSReqMeanThroughput );
       
   841         }
       
   842     if ( !serviceRecord->iGPRSMinPrecedence.IsNull() )
       
   843         {
       
   844         origServiceRecord->iGPRSMinPrecedence.SetL( serviceRecord->iGPRSMinPrecedence );
       
   845         }
       
   846     if ( !serviceRecord->iGPRSMinDelay.IsNull() )
       
   847         {
       
   848         origServiceRecord->iGPRSMinDelay.SetL( serviceRecord->iGPRSMinDelay );
       
   849         }
       
   850     if ( !serviceRecord->iGPRSMinReliability.IsNull() )
       
   851         {
       
   852         origServiceRecord->iGPRSMinReliability.SetL( serviceRecord->iGPRSMinReliability );
       
   853         }
       
   854     if ( !serviceRecord->iGPRSMinPeakThroughput.IsNull() )
       
   855         {
       
   856         origServiceRecord->iGPRSMinPeakThroughput.SetL( serviceRecord->iGPRSMinPeakThroughput );
       
   857         }
       
   858     if ( !serviceRecord->iGPRSMinMeanThroughput.IsNull() )
       
   859         {
       
   860         origServiceRecord->iGPRSMinMeanThroughput.SetL( serviceRecord->iGPRSMinMeanThroughput );
       
   861         }
       
   862     if ( !serviceRecord->iGPRSDataCompression.IsNull() )
       
   863         {
       
   864         origServiceRecord->iGPRSDataCompression.SetL( serviceRecord->iGPRSDataCompression );
       
   865         }
       
   866     if ( !serviceRecord->iGPRSHeaderCompression.IsNull() )
       
   867         {
       
   868         origServiceRecord->iGPRSHeaderCompression.SetL( serviceRecord->iGPRSHeaderCompression );
       
   869         }
       
   870     if ( !serviceRecord->iGPRSUseEdge.IsNull() )
       
   871         {
       
   872         origServiceRecord->iGPRSUseEdge.SetL( serviceRecord->iGPRSUseEdge );
       
   873         }
       
   874     if ( !serviceRecord->iGPRSAnonymousAccess.IsNull() )
       
   875         {
       
   876         origServiceRecord->iGPRSAnonymousAccess.SetL( serviceRecord->iGPRSAnonymousAccess );
       
   877         }
       
   878     if ( !serviceRecord->iGPRSIfParams.IsNull() )
       
   879         {
       
   880         origServiceRecord->iGPRSIfParams.SetL( serviceRecord->iGPRSIfParams );
       
   881         }
       
   882     if ( !serviceRecord->iGPRSIfNetworks.IsNull() )
       
   883         {
       
   884         origServiceRecord->iGPRSIfNetworks.SetL( serviceRecord->iGPRSIfNetworks );
       
   885         }
       
   886     if ( !serviceRecord->iGPRSIfPromptForAuth.IsNull() )
       
   887         {
       
   888         origServiceRecord->iGPRSIfPromptForAuth.SetL( serviceRecord->iGPRSIfPromptForAuth );
       
   889         }
       
   890     if ( !serviceRecord->iGPRSIfAuthName.IsNull() )
       
   891         {
       
   892         origServiceRecord->iGPRSIfAuthName.SetL( serviceRecord->iGPRSIfAuthName );
       
   893         }
       
   894     if ( !serviceRecord->iGPRSIfAuthPass.IsNull() )
       
   895         {
       
   896         origServiceRecord->iGPRSIfAuthPass.SetL( serviceRecord->iGPRSIfAuthPass );
       
   897         }
       
   898     if ( !serviceRecord->iGPRSIfAuthRetries.IsNull() )
       
   899         {
       
   900         origServiceRecord->iGPRSIfAuthRetries.SetL( serviceRecord->iGPRSIfAuthRetries );
       
   901         }
       
   902     if ( !serviceRecord->iGPRSIPNetMask.IsNull() )
       
   903         {
       
   904         origServiceRecord->iGPRSIPNetMask.SetL( serviceRecord->iGPRSIPNetMask );
       
   905         }
       
   906     if ( !serviceRecord->iGPRSIPGateway.IsNull() )
       
   907         {
       
   908         origServiceRecord->iGPRSIPGateway.SetL( serviceRecord->iGPRSIPGateway );
       
   909         }
       
   910     if ( !serviceRecord->iGPRSIPAddrFromServer.IsNull() )
       
   911         {
       
   912         origServiceRecord->iGPRSIPAddrFromServer.SetL( serviceRecord->iGPRSIPAddrFromServer );
       
   913         }
       
   914     if ( !serviceRecord->iGPRSIPAddr.IsNull() )
       
   915         {
       
   916         origServiceRecord->iGPRSIPAddr.SetL( serviceRecord->iGPRSIPAddr );
       
   917         }
       
   918     if ( !serviceRecord->iGPRSIPDNSAddrFromServer.IsNull() )
       
   919         {
       
   920         origServiceRecord->iGPRSIPDNSAddrFromServer.SetL( serviceRecord->iGPRSIPDNSAddrFromServer );
       
   921         }
       
   922     if ( !serviceRecord->iGPRSIPNameServer1.IsNull() )
       
   923         {
       
   924         origServiceRecord->iGPRSIPNameServer1.SetL( serviceRecord->iGPRSIPNameServer1 );
       
   925         }
       
   926     if ( !serviceRecord->iGPRSIPNameServer2.IsNull() )
       
   927         {
       
   928         origServiceRecord->iGPRSIPNameServer2.SetL( serviceRecord->iGPRSIPNameServer2 );
       
   929         }
       
   930     if ( !serviceRecord->iGPRSIP6DNSAddrFromServer.IsNull() )
       
   931         {
       
   932         origServiceRecord->iGPRSIP6DNSAddrFromServer.SetL( serviceRecord->iGPRSIP6DNSAddrFromServer );
       
   933         }
       
   934     if ( !serviceRecord->iGPRSIP6NameServer1.IsNull() )
       
   935         {
       
   936         origServiceRecord->iGPRSIP6NameServer1.SetL( serviceRecord->iGPRSIP6NameServer1 );
       
   937         }
       
   938     if ( !serviceRecord->iGPRSIP6NameServer2.IsNull() )
       
   939         {
       
   940         origServiceRecord->iGPRSIP6NameServer2.SetL( serviceRecord->iGPRSIP6NameServer2 );
       
   941         }
       
   942     if ( !serviceRecord->iGPRSIPAddrLeaseValidFrom.IsNull() )
       
   943         {
       
   944         origServiceRecord->iGPRSIPAddrLeaseValidFrom.SetL( serviceRecord->iGPRSIPAddrLeaseValidFrom );
       
   945         }
       
   946     if ( !serviceRecord->iGPRSIPAddrLeaseValidTo.IsNull() )
       
   947         {
       
   948         origServiceRecord->iGPRSIPAddrLeaseValidTo.SetL( serviceRecord->iGPRSIPAddrLeaseValidTo );
       
   949         }
       
   950     if ( !serviceRecord->iGPRSConfigDaemonManagerName.IsNull() )
       
   951         {
       
   952         origServiceRecord->iGPRSConfigDaemonManagerName.SetL( serviceRecord->iGPRSConfigDaemonManagerName );
       
   953         }
       
   954     if ( !serviceRecord->iGPRSConfigDaemonName.IsNull() )
       
   955         {
       
   956         origServiceRecord->iGPRSConfigDaemonName.SetL( serviceRecord->iGPRSConfigDaemonName );
       
   957         }
       
   958     if ( !serviceRecord->iGPRSEnableLCPExtension.IsNull() )
       
   959         {
       
   960         origServiceRecord->iGPRSEnableLCPExtension.SetL( serviceRecord->iGPRSEnableLCPExtension );
       
   961         }
       
   962     if ( !serviceRecord->iGPRSDisablePlainTextAuth.IsNull() )
       
   963         {
       
   964         origServiceRecord->iGPRSDisablePlainTextAuth.SetL( serviceRecord->iGPRSDisablePlainTextAuth );
       
   965         }
       
   966     if ( !serviceRecord->iGPRSAPType.IsNull() )
       
   967         {
       
   968         origServiceRecord->iGPRSAPType.SetL( serviceRecord->iGPRSAPType );
       
   969         }
       
   970     if ( !serviceRecord->iGPRSQOSWarningTimeOut.IsNull() )
       
   971         {
       
   972         origServiceRecord->iGPRSQOSWarningTimeOut.SetL( serviceRecord->iGPRSQOSWarningTimeOut );
       
   973         }
       
   974     if ( !serviceRecord->iGPRSR5DataCompression.IsNull() )
       
   975         {
       
   976         origServiceRecord->iGPRSR5DataCompression.SetL( serviceRecord->iGPRSR5DataCompression );
       
   977         }
       
   978     if ( !serviceRecord->iGPRSR5HeaderCompression.IsNull() )
       
   979         {
       
   980         origServiceRecord->iGPRSR5HeaderCompression.SetL( serviceRecord->iGPRSR5HeaderCompression );
       
   981         }
       
   982     if ( !serviceRecord->iGPRSPacketFlowIdentifier.IsNull() )
       
   983         {
       
   984         origServiceRecord->iGPRSPacketFlowIdentifier.SetL( serviceRecord->iGPRSPacketFlowIdentifier );
       
   985         }
       
   986     if ( !serviceRecord->iGPRSUmtsGprsRelease.IsNull() )
       
   987         {
       
   988         origServiceRecord->iGPRSUmtsGprsRelease.SetL( serviceRecord->iGPRSUmtsGprsRelease );
       
   989         }
       
   990 
       
   991     if ( iPacketDataQoSRecord )
       
   992         {
       
   993         origServiceRecord->iUmtsR99QoSAndOnTable = iPacketDataQoSRecord->RecordId();
       
   994         }
       
   995 
       
   996     if ( !iServiceRecord->RecordId() )
       
   997         {
       
   998         iServiceRecord->SetRecordId( KCDNewRecordRequest );
       
   999         iServiceRecord->StoreL( iSession );
       
  1000         serviceRecord->SetElementId( iServiceRecord->ElementId() );
       
  1001         }
       
  1002     else
       
  1003         {
       
  1004         iServiceRecord->ModifyL( iSession );
       
  1005         }
       
  1006 
       
  1007     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_UPDATESERVICERECORDL_EXIT );
       
  1008     }
       
  1009 
       
  1010 // ---------------------------------------------------------------------------
       
  1011 // CCmPluginPacketData::UpdateBearerRecordsL
       
  1012 // ---------------------------------------------------------------------------
       
  1013 //
       
  1014 void CCmPluginPacketData::UpdateBearerRecordsL(
       
  1015         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
  1016         RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  1017     {
       
  1018     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_UPDATEBEARERRECORDSL_ENTRY );
       
  1019 
       
  1020     delete iPacketDataQoSRecord;
       
  1021     iPacketDataQoSRecord = NULL;
       
  1022 
       
  1023     CCDUmtsR99QoSAndOnTableRecord* packetDataQoSRecord =
       
  1024             static_cast<CCDUmtsR99QoSAndOnTableRecord*>( aBearerSpecRecordArray[KQosRecordIndex] );
       
  1025 
       
  1026     iPacketDataQoSRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
       
  1027             CCDRecordBase::CreateCopyRecordL( *packetDataQoSRecord ) );
       
  1028 
       
  1029     iPacketDataQoSRecord->SetElementId( aBearerSpecRecordArray[KQosRecordIndex]->ElementId() );
       
  1030 
       
  1031     if ( !iPacketDataQoSRecord->RecordId() )
       
  1032         {
       
  1033         iPacketDataQoSRecord->SetRecordId( KCDNewRecordRequest );
       
  1034         iPacketDataQoSRecord->StoreL( iSession );
       
  1035         packetDataQoSRecord->SetElementId( iPacketDataQoSRecord->ElementId() );
       
  1036 
       
  1037         // Set service record to point to QoS record
       
  1038         ServiceRecord().iUmtsR99QoSAndOnTable = iPacketDataQoSRecord->RecordId();
       
  1039         ServiceRecord().ModifyL( iSession );
       
  1040 
       
  1041         CCDWCDMAPacketServiceRecord* serviceRecord =
       
  1042                 static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
  1043         serviceRecord->iUmtsR99QoSAndOnTable = iPacketDataQoSRecord->RecordId();
       
  1044         }
       
  1045     else
       
  1046         {
       
  1047         iPacketDataQoSRecord->ModifyL( iSession );
       
  1048         }
       
  1049 
       
  1050     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_UPDATEBEARERRECORDSL_EXIT );
       
  1051     }
       
  1052 
       
  1053 // ---------------------------------------------------------------------------
       
  1054 // CCmPluginPacketData::GetBearerSpecificRecordsL
       
  1055 // ---------------------------------------------------------------------------
       
  1056 //
       
  1057 void CCmPluginPacketData::GetBearerSpecificRecordsL(
       
  1058         RPointerArray<CommsDat::CCDRecordBase>& aRecordArray )
       
  1059     {
       
  1060     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERSPECIFICRECORDSL_ENTRY );
       
  1061 
       
  1062     if ( !iPacketDataQoSRecord )
       
  1063         {
       
  1064         // IAP not yet in CommDat
       
  1065         GetDefaultQosRecordL( aRecordArray );
       
  1066         }
       
  1067     else
       
  1068         {
       
  1069         CCDUmtsR99QoSAndOnTableRecord* qosRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
       
  1070                 CCDRecordBase::CreateCopyRecordL( *iPacketDataQoSRecord ) );
       
  1071         CleanupStack::PushL( qosRecord );
       
  1072         qosRecord->SetElementId( iPacketDataQoSRecord->ElementId() );
       
  1073         aRecordArray.AppendL( static_cast<CommsDat::CCDRecordBase*>( qosRecord ) );
       
  1074         CleanupStack::Pop( qosRecord );
       
  1075         }
       
  1076 
       
  1077     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERSPECIFICRECORDSL_EXIT );
       
  1078     }
       
  1079 
       
  1080 // ---------------------------------------------------------------------------
       
  1081 // CCmPluginPacketData::GetDefaultServiceRecordL
       
  1082 // ---------------------------------------------------------------------------
       
  1083 //
       
  1084 void CCmPluginPacketData::GetDefaultServiceRecordL(
       
  1085         RPointerArray<CommsDat::CCDRecordBase>& aRecordArray )
       
  1086     {
       
  1087     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETDEFAULTSERVICERECORDL_ENTRY );
       
  1088 
       
  1089     CCDWCDMAPacketServiceRecord* serviceRecord( NULL );
       
  1090     if ( iOutgoing )
       
  1091         {
       
  1092         serviceRecord =
       
  1093             static_cast<CCDWCDMAPacketServiceRecord*>(
       
  1094                     CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
       
  1095         }
       
  1096     else
       
  1097         {
       
  1098         serviceRecord =
       
  1099             static_cast<CCDWCDMAPacketServiceRecord*>(
       
  1100                     CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
       
  1101         }
       
  1102 
       
  1103     CleanupStack::PushL( serviceRecord );
       
  1104     serviceRecord->iGPRSAPN.SetL( KNullDesC );
       
  1105     serviceRecord->iGPRSPDPType.SetL( RPacketContext::EPdpTypeIPv4 );
       
  1106     serviceRecord->iGPRSReqPrecedence = 0;
       
  1107     serviceRecord->iGPRSReqDelay = 0;
       
  1108     serviceRecord->iGPRSReqReliability = 0;
       
  1109     serviceRecord->iGPRSReqPeakThroughput = 0;
       
  1110     serviceRecord->iGPRSReqMeanThroughput = 0;
       
  1111     serviceRecord->iGPRSMinPrecedence = 0;
       
  1112     serviceRecord->iGPRSMinDelay = 0;
       
  1113     serviceRecord->iGPRSMinReliability = 0;
       
  1114     serviceRecord->iGPRSMinPeakThroughput = 0;
       
  1115     serviceRecord->iGPRSMinMeanThroughput = 0;
       
  1116     serviceRecord->iGPRSDataCompression = EFalse;
       
  1117     serviceRecord->iGPRSHeaderCompression = EFalse;
       
  1118     serviceRecord->iGPRSAnonymousAccess = EFalse;
       
  1119     serviceRecord->iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv4 );
       
  1120     serviceRecord->iGPRSIfPromptForAuth = EFalse;
       
  1121     serviceRecord->iGPRSIfAuthRetries = 0;
       
  1122     serviceRecord->iGPRSIPGateway.SetL( KUnspecifiedIPv4 );
       
  1123     serviceRecord->iGPRSIPAddrFromServer = ETrue;
       
  1124     serviceRecord->iGPRSIPAddr.SetL( KUnspecifiedIPv4 );
       
  1125     serviceRecord->iGPRSIPDNSAddrFromServer = ETrue;
       
  1126     serviceRecord->iGPRSIPNameServer1.SetL( KUnspecifiedIPv4 );
       
  1127     serviceRecord->iGPRSIPNameServer2.SetL( KUnspecifiedIPv4 );
       
  1128     serviceRecord->iGPRSIP6DNSAddrFromServer = ETrue;
       
  1129     serviceRecord->iGPRSIP6NameServer1.SetL( KDynamicIpv6Address );
       
  1130     serviceRecord->iGPRSIP6NameServer2.SetL( KDynamicIpv6Address );
       
  1131     serviceRecord->iGPRSEnableLCPExtension = EFalse;
       
  1132     serviceRecord->iGPRSDisablePlainTextAuth = ETrue;
       
  1133     serviceRecord->iGPRSAPType = EPacketDataBoth;
       
  1134     serviceRecord->iGPRSQOSWarningTimeOut = TUint32(-1);
       
  1135 
       
  1136     aRecordArray.AppendL( static_cast<CommsDat::CCDRecordBase*>( serviceRecord ) );
       
  1137     CleanupStack::Pop( serviceRecord );
       
  1138 
       
  1139     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETDEFAULTSERVICERECORDL_EXIT );
       
  1140     }
       
  1141 
       
  1142 // ---------------------------------------------------------------------------
       
  1143 // CCmPluginPacketData::GetDefaultQosRecordL
       
  1144 // ---------------------------------------------------------------------------
       
  1145 //
       
  1146 void CCmPluginPacketData::GetDefaultQosRecordL(
       
  1147         RPointerArray<CommsDat::CCDRecordBase>& aRecordArray )
       
  1148     {
       
  1149     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETDEFAULTQOSRECORDL_ENTRY );
       
  1150 
       
  1151     CCDUmtsR99QoSAndOnTableRecord* packetDataQoSRecord =
       
  1152             static_cast<CCDUmtsR99QoSAndOnTableRecord *>(
       
  1153                     CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
       
  1154     CleanupStack::PushL( packetDataQoSRecord );
       
  1155 
       
  1156     packetDataQoSRecord->iGPRSReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  1157     packetDataQoSRecord->iGPRSMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  1158     packetDataQoSRecord->iGPRSReqDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
       
  1159     packetDataQoSRecord->iGPRSMinDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
       
  1160     packetDataQoSRecord->iGPRSReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  1161     packetDataQoSRecord->iGPRSMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  1162     packetDataQoSRecord->iGPRSReqMaxSDUSize = 0;
       
  1163     packetDataQoSRecord->iGPRSMinAcceptableMaxSDUSize = 0;
       
  1164     packetDataQoSRecord->iGPRSReqMaxUplinkRate = 0;
       
  1165     packetDataQoSRecord->iGPRSReqMinUplinkRate = 0;
       
  1166     packetDataQoSRecord->iGPRSReqMaxDownlinkRate = 0;
       
  1167     packetDataQoSRecord->iGPRSReqMinDownlinkRate = 0;
       
  1168     packetDataQoSRecord->iGPRSReqBER = RPacketQoS::EBERUnspecified;
       
  1169     packetDataQoSRecord->iGPRSMaxBER = RPacketQoS::EBERUnspecified;
       
  1170     packetDataQoSRecord->iGPRSReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  1171     packetDataQoSRecord->iGPRSMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  1172     packetDataQoSRecord->iGPRSReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  1173     packetDataQoSRecord->iGPRSMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  1174     packetDataQoSRecord->iGPRSReqTransferDelay = 0;
       
  1175     packetDataQoSRecord->iGPRSMaxTransferDelay = 0;
       
  1176     packetDataQoSRecord->iGPRSReqGuaranteedUplinkRate = 0;
       
  1177     packetDataQoSRecord->iGPRSMinGuaranteedUplinkRate = 0;
       
  1178     packetDataQoSRecord->iGPRSReqGuaranteedDownlinkRate = 0;
       
  1179     packetDataQoSRecord->iGPRSMinGuaranteedDownlinkRate = 0;
       
  1180     packetDataQoSRecord->iGPRSSignallingIndication = EFalse;
       
  1181     packetDataQoSRecord->iGPRS_ImCnSignallingIndication = EFalse;
       
  1182     packetDataQoSRecord->iGPRSSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
       
  1183 
       
  1184     aRecordArray.AppendL( static_cast<CommsDat::CCDRecordBase*>( packetDataQoSRecord ) );
       
  1185     CleanupStack::Pop( packetDataQoSRecord );
       
  1186 
       
  1187     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETDEFAULTQOSRECORDL_EXIT );
       
  1188     }
       
  1189 
       
  1190 // ---------------------------------------------------------------------------
       
  1191 // CCmPluginPacketData::GetBearerIntAttributeL
       
  1192 // ---------------------------------------------------------------------------
       
  1193 //
       
  1194 TUint32 CCmPluginPacketData::GetBearerIntAttributeL(
       
  1195         TUint32 aAttribute,
       
  1196         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
  1197         RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  1198     {
       
  1199     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINTATTRIBUTEL_ENTRY );
       
  1200 
       
  1201     TUint32 retVal( 0 );
       
  1202 
       
  1203     CCDWCDMAPacketServiceRecord* serviceRecord =
       
  1204             static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
  1205 
       
  1206     if ( aAttribute < ECmCommonAttributesEnd ||
       
  1207             ( aAttribute > ECmBearerCreationCommonAttributes &&
       
  1208               aAttribute < ECmBearerCreationCommonAttributesEnd ) )
       
  1209         {
       
  1210         switch ( aAttribute )
       
  1211             {
       
  1212             case ECmBearerType:
       
  1213                 {
       
  1214                 retVal = iBearerType;
       
  1215                 }
       
  1216                 break;
       
  1217             case ECmCommsDBBearerType:
       
  1218                 {
       
  1219                 retVal = KCommDbBearerWcdma;
       
  1220                 }
       
  1221                 break;
       
  1222             case ECmDefaultUiPriority:
       
  1223             case ECmDefaultPriority:
       
  1224                 {
       
  1225                 retVal = KDefaultPriorityPacketData;
       
  1226                 }
       
  1227                 break;
       
  1228             case ECmExtensionLevel:
       
  1229                 {
       
  1230                 retVal = KExtensionBaseLevel;
       
  1231                 }
       
  1232                 break;
       
  1233             case ECmInvalidAttribute:
       
  1234                 {
       
  1235                 retVal = 0;
       
  1236                 }
       
  1237                 break;
       
  1238             case ECmIFAuthRetries:
       
  1239                 {
       
  1240                 retVal = serviceRecord->iGPRSIfAuthRetries;
       
  1241                 }
       
  1242                 break;
       
  1243             default:
       
  1244                 {
       
  1245                 User::Leave( KErrNotFound );
       
  1246                 }
       
  1247                 break;
       
  1248             }
       
  1249 
       
  1250         OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINTATTRIBUTEL_EXIT );
       
  1251         return retVal;
       
  1252         }
       
  1253 
       
  1254     if ( aAttribute >= EPacketDataSpecificAttributes &&
       
  1255             aAttribute < EPacketDataServiceEnableLLMNR )
       
  1256         {
       
  1257         retVal = GetServiceIntAttributeL( aAttribute, aGenRecordArray );
       
  1258         }
       
  1259     else if ( aAttribute >= EGPRSReqTrafficClass &&
       
  1260             aAttribute <= EGPRSSourceStatisticsDescriptor )
       
  1261         {
       
  1262         retVal = GetQosIntAttributeL( aAttribute, aBearerSpecRecordArray );
       
  1263         }
       
  1264     else
       
  1265         {
       
  1266         User::Leave( KErrNotFound );
       
  1267         }
       
  1268 
       
  1269     OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_GETBEARERINTATTRIBUTEL_EXIT );
       
  1270     return retVal;
       
  1271     }
       
  1272 
       
  1273 // ---------------------------------------------------------------------------
       
  1274 // CCmPluginPacketData::GetServiceIntAttributeL
       
  1275 // ---------------------------------------------------------------------------
       
  1276 //
       
  1277 TUint32 CCmPluginPacketData::GetServiceIntAttributeL( TUint32 aAttribute,
       
  1278                                                       RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray )
       
  1279     {
       
  1280     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETSERVICEINTATTRIBUTEL_ENTRY );
       
  1281 
       
  1282     TUint32 retVal( 0 );
       
  1283 
       
  1284     CCDWCDMAPacketServiceRecord* serviceRecord =
       
  1285             static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
  1286 
       
  1287     switch ( aAttribute )
       
  1288         {
       
  1289         case EPacketDataPDPType:
       
  1290             {
       
  1291             retVal = serviceRecord->iGPRSPDPType;
       
  1292             }
       
  1293             break;
       
  1294 
       
  1295         case EPacketDataReqPrecedence:
       
  1296             {
       
  1297             retVal = serviceRecord->iGPRSReqPrecedence;
       
  1298             }
       
  1299             break;
       
  1300 
       
  1301         case EPacketDataReqDelay:
       
  1302             {
       
  1303             retVal = serviceRecord->iGPRSReqDelay;
       
  1304             }
       
  1305             break;
       
  1306 
       
  1307         case EPacketDataReliability:
       
  1308             {
       
  1309             retVal = serviceRecord->iGPRSReqReliability;
       
  1310             }
       
  1311             break;
       
  1312 
       
  1313         case EPacketDataPeakThroughput:
       
  1314             {
       
  1315             retVal = serviceRecord->iGPRSReqPeakThroughput;
       
  1316             }
       
  1317             break;
       
  1318 
       
  1319         case EPacketDataMeanThroughput:
       
  1320             {
       
  1321             retVal = serviceRecord->iGPRSMinMeanThroughput;
       
  1322             }
       
  1323             break;
       
  1324 
       
  1325         case EPacketDataMinPrecedence:
       
  1326             {
       
  1327             retVal = serviceRecord->iGPRSMinPrecedence;
       
  1328             }
       
  1329             break;
       
  1330 
       
  1331         case EPacketDataMinDelay:
       
  1332             {
       
  1333             retVal = serviceRecord->iGPRSMinDelay;
       
  1334             }
       
  1335             break;
       
  1336 
       
  1337         case EPacketDataMinReliability:
       
  1338             {
       
  1339             retVal = serviceRecord->iGPRSMinReliability;
       
  1340             }
       
  1341             break;
       
  1342 
       
  1343         case EPacketDataMinPeakThroughput:
       
  1344             {
       
  1345             retVal = serviceRecord->iGPRSMinPeakThroughput;
       
  1346             }
       
  1347             break;
       
  1348 
       
  1349         case EPacketDataMinMeanThroughput:
       
  1350             {
       
  1351             retVal = serviceRecord->iGPRSMinMeanThroughput;
       
  1352             }
       
  1353             break;
       
  1354 
       
  1355         case EPacketDataIFAuthRetries:
       
  1356             {
       
  1357             retVal = serviceRecord->iGPRSIfAuthRetries;
       
  1358             }
       
  1359             break;
       
  1360 
       
  1361         case EPacketDataApType:
       
  1362             {
       
  1363             retVal = serviceRecord->iGPRSAPType;
       
  1364             }
       
  1365             break;
       
  1366 
       
  1367         case EPacketDataQoSWarningTimeOut:
       
  1368             {
       
  1369             retVal = serviceRecord->iGPRSQOSWarningTimeOut;
       
  1370             }
       
  1371             break;
       
  1372         default:
       
  1373             {
       
  1374             User::Leave( KErrNotFound );
       
  1375             }
       
  1376         }
       
  1377 
       
  1378     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETSERVICEINTATTRIBUTEL_EXIT );
       
  1379 
       
  1380     return retVal;
       
  1381     }
       
  1382 
       
  1383 // ---------------------------------------------------------------------------
       
  1384 // CCmPluginPacketData::GetQosIntAttributeL
       
  1385 // ---------------------------------------------------------------------------
       
  1386 //
       
  1387 TUint32 CCmPluginPacketData::GetQosIntAttributeL( TUint32 aAttribute,
       
  1388                                                   RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  1389     {
       
  1390     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETQOSINTATTRIBUTEL_ENTRY );
       
  1391 
       
  1392     TUint32 retVal( 0 );
       
  1393 
       
  1394     CCDUmtsR99QoSAndOnTableRecord* qosRecord =
       
  1395             static_cast<CCDUmtsR99QoSAndOnTableRecord*>( aBearerSpecRecordArray[KQosRecordIndex] );
       
  1396 
       
  1397     switch ( aAttribute )
       
  1398         {
       
  1399         case EGPRSReqTrafficClass:
       
  1400             {
       
  1401             retVal = qosRecord->iGPRSReqTrafficClass;
       
  1402             }
       
  1403             break;
       
  1404 
       
  1405         case EGPRSMinTrafficClass:
       
  1406             {
       
  1407             retVal = qosRecord->iGPRSMinTrafficClass;
       
  1408             }
       
  1409             break;
       
  1410 
       
  1411         case EGPRSReqDeliveryOrder:
       
  1412             {
       
  1413             retVal = qosRecord->iGPRSReqDeliveryOrder;
       
  1414             }
       
  1415             break;
       
  1416 
       
  1417         case GPRSMinDeliveryOrder:
       
  1418             {
       
  1419             retVal = qosRecord->iGPRSMinDeliveryOrder;
       
  1420             }
       
  1421             break;
       
  1422         case EGPRSReqDeliverErroneousSDU:
       
  1423             {
       
  1424             retVal = qosRecord->iGPRSReqDeliverErroneousSDU;
       
  1425             }
       
  1426             break;
       
  1427         case EGPRSMinDeliverErroneousSDU:
       
  1428             {
       
  1429             retVal = qosRecord->iGPRSMinDeliverErroneousSDU;
       
  1430             }
       
  1431             break;
       
  1432         case EGPRSReqMaxSDUSize:
       
  1433             {
       
  1434             retVal = qosRecord->iGPRSReqMaxSDUSize;
       
  1435             }
       
  1436             break;
       
  1437 
       
  1438         case EGPRSMinAcceptableMaxSDUSize:
       
  1439             {
       
  1440             retVal = qosRecord->iGPRSMinAcceptableMaxSDUSize;
       
  1441             }
       
  1442             break;
       
  1443 
       
  1444         case EGPRSReqMaxUplinkRate:
       
  1445             {
       
  1446             retVal = qosRecord->iGPRSReqMaxUplinkRate;
       
  1447             }
       
  1448             break;
       
  1449 
       
  1450         case EGPRSReqMinUplinkRate:
       
  1451             {
       
  1452             retVal = qosRecord->iGPRSReqMinUplinkRate;
       
  1453             }
       
  1454             break;
       
  1455 
       
  1456         case EGPRSReqMaxDownlinkRate:
       
  1457             {
       
  1458             retVal = qosRecord->iGPRSReqMaxDownlinkRate;
       
  1459             }
       
  1460             break;
       
  1461 
       
  1462         case EGPRSReqMinDownlinkRate:
       
  1463             {
       
  1464             retVal = qosRecord->iGPRSReqMinDownlinkRate;
       
  1465             }
       
  1466             break;
       
  1467 
       
  1468         case EGPRSReqBER:
       
  1469             {
       
  1470             retVal = qosRecord->iGPRSReqBER;
       
  1471             }
       
  1472             break;
       
  1473 
       
  1474         case EGPRSMaxBER:
       
  1475             {
       
  1476             retVal = qosRecord->iGPRSMaxBER;
       
  1477             }
       
  1478             break;
       
  1479 
       
  1480         case EGPRSReqSDUErrorRatio:
       
  1481             {
       
  1482             retVal = qosRecord->iGPRSReqSDUErrorRatio;
       
  1483             }
       
  1484             break;
       
  1485 
       
  1486         case EGPRSMaxSDUErrorRatio:
       
  1487             {
       
  1488             retVal = qosRecord->iGPRSMaxSDUErrorRatio;
       
  1489             }
       
  1490             break;
       
  1491 
       
  1492         case EGPRSReqTrafficHandlingPriority:
       
  1493             {
       
  1494             retVal = qosRecord->iGPRSReqTrafficHandlingPriority;
       
  1495             }
       
  1496             break;
       
  1497 
       
  1498         case EGPRSMinTrafficHandlingPriority:
       
  1499             {
       
  1500             retVal = qosRecord->iGPRSMinTrafficHandlingPriority;
       
  1501             }
       
  1502             break;
       
  1503 
       
  1504         case EGPRSReqTransferDelay:
       
  1505             {
       
  1506             retVal = qosRecord->iGPRSReqTransferDelay;
       
  1507             }
       
  1508             break;
       
  1509 
       
  1510         case EGPRSMaxTransferDelay:
       
  1511             {
       
  1512             retVal = qosRecord->iGPRSMaxTransferDelay;
       
  1513             }
       
  1514             break;
       
  1515 
       
  1516         case EGPRSReqGuaranteedUplinkRate:
       
  1517             {
       
  1518             retVal = qosRecord->iGPRSReqGuaranteedUplinkRate;
       
  1519             }
       
  1520             break;
       
  1521 
       
  1522         case EGPRSMinGuaranteedUplinkRate:
       
  1523             {
       
  1524             retVal = qosRecord->iGPRSMinGuaranteedUplinkRate;
       
  1525             }
       
  1526             break;
       
  1527 
       
  1528         case EGPRSReqGuaranteedDownlinkRate:
       
  1529             {
       
  1530             retVal = qosRecord->iGPRSReqGuaranteedDownlinkRate;
       
  1531             }
       
  1532             break;
       
  1533 
       
  1534         case EGPRSMinGuaranteedDownlinkRate:
       
  1535             {
       
  1536             retVal = qosRecord->iGPRSMinGuaranteedDownlinkRate;
       
  1537             }
       
  1538             break;
       
  1539 
       
  1540         case EGPRSSourceStatisticsDescriptor:
       
  1541             {
       
  1542             retVal = qosRecord->iGPRSSourceStatisticsDescriptor;
       
  1543             }
       
  1544             break;
       
  1545 
       
  1546         default:
       
  1547             {
       
  1548             User::Leave( KErrNotFound );
       
  1549             }
       
  1550             break;
       
  1551         }
       
  1552 
       
  1553     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETQOSINTATTRIBUTEL_EXIT );
       
  1554 
       
  1555     return retVal;
       
  1556     }
       
  1557 
       
  1558 // ---------------------------------------------------------------------------
       
  1559 // CCmPluginPacketData::GetBearerBoolAttributeL
       
  1560 // ---------------------------------------------------------------------------
       
  1561 //
       
  1562 TBool CCmPluginPacketData::GetBearerBoolAttributeL( TUint32 aAttribute,
       
  1563                                          RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
  1564                                          RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  1565     {
       
  1566     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERBOOLATTRIBUTEL_ENTRY );
       
  1567 
       
  1568     TBool retVal( EFalse );
       
  1569 
       
  1570     switch( aAttribute )
       
  1571         {
       
  1572         case EPacketDataOutGoing:
       
  1573             {
       
  1574             retVal = iOutgoing;
       
  1575             }
       
  1576             break;
       
  1577         case ECmCoverage:
       
  1578             {
       
  1579 #ifndef __WINS__
       
  1580             CCmPDCoverageCheck* coverage = new (ELeave) CCmPDCoverageCheck;
       
  1581             CleanupStack::PushL( coverage );
       
  1582 
       
  1583             retVal = coverage->IsThereCoverageL();
       
  1584 
       
  1585             CleanupStack::PopAndDestroy( coverage );
       
  1586 #else
       
  1587             retVal = ETrue;
       
  1588 #endif
       
  1589             }
       
  1590             break;
       
  1591         case ECmDestination:
       
  1592             {
       
  1593             retVal = EFalse;
       
  1594             }
       
  1595             break;
       
  1596         case ECmBearerHasUi:
       
  1597             {
       
  1598             retVal = ETrue;
       
  1599             }
       
  1600             break;
       
  1601         case ECmIPv6Supported:
       
  1602             {
       
  1603             retVal = FeatureManager::FeatureSupported( KFeatureIdIPv6 );
       
  1604             }
       
  1605             break;
       
  1606         case EPacketDataDataCompression:
       
  1607             {
       
  1608             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1609                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSDataCompression;
       
  1610             }
       
  1611             break;
       
  1612         case EPacketDataHeaderCompression:
       
  1613             {
       
  1614             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1615                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSHeaderCompression;
       
  1616             }
       
  1617             break;
       
  1618         case EPacketDataUseEdge:
       
  1619             {
       
  1620             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1621                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSUseEdge;
       
  1622             }
       
  1623             break;
       
  1624         case EPacketDataAnonymousAccess:
       
  1625             {
       
  1626             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1627                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSAnonymousAccess;
       
  1628             }
       
  1629             break;
       
  1630         case ECmIFPromptForAuth:
       
  1631         case EPacketDataIFPromptForAuth:
       
  1632             {
       
  1633             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1634                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSIfPromptForAuth;
       
  1635             }
       
  1636             break;
       
  1637         case ECmIPAddFromServer:
       
  1638         case EPacketDataIPAddrFromServer:
       
  1639             {
       
  1640             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1641                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSIPAddrFromServer;
       
  1642             }
       
  1643             break;
       
  1644         case ECmIPDNSAddrFromServer:
       
  1645         case EPacketDataIPDNSAddrFromServer:
       
  1646             {
       
  1647             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1648                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSIPDNSAddrFromServer;
       
  1649             }
       
  1650             break;
       
  1651         case ECmIP6DNSAddrFromServer:
       
  1652         case EPacketDataIPIP6DNSAddrFromServer:
       
  1653             {
       
  1654             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1655                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSIP6DNSAddrFromServer;
       
  1656             }
       
  1657             break;
       
  1658         case ECmEnableLPCExtension:
       
  1659         case EPacketDataEnableLcpExtension:
       
  1660             {
       
  1661             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1662                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSEnableLCPExtension;
       
  1663             }
       
  1664             break;
       
  1665         case EPacketDataServiceEnableLLMNR:
       
  1666             {
       
  1667             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1668                                 ( aGenRecordArray[KServiceRecordIndex] )->iServiceEnableLlmnr;
       
  1669             }
       
  1670             break;
       
  1671         case ECmDisablePlainTextAuth:
       
  1672         case EPacketDataDisablePlainTextAuth:
       
  1673             {
       
  1674             retVal = static_cast<CCDWCDMAPacketServiceRecord*>
       
  1675                                 ( aGenRecordArray[KServiceRecordIndex] )->iGPRSDisablePlainTextAuth;
       
  1676             }
       
  1677             break;
       
  1678         case EGPRSSignallingIndication:
       
  1679             {
       
  1680             retVal = static_cast<CCDUmtsR99QoSAndOnTableRecord*>
       
  1681                                 ( aBearerSpecRecordArray[KQosRecordIndex] )->iGPRSSignallingIndication;
       
  1682             }
       
  1683             break;
       
  1684         case EGPRS_ImCnSignallingIndication:
       
  1685             {
       
  1686             retVal = static_cast<CCDUmtsR99QoSAndOnTableRecord*>
       
  1687                                 ( aBearerSpecRecordArray[KQosRecordIndex] )->iGPRS_ImCnSignallingIndication;
       
  1688             }
       
  1689             break;
       
  1690         default:
       
  1691             {
       
  1692             User::Leave( KErrNotFound );
       
  1693             }
       
  1694             break;
       
  1695         }
       
  1696 
       
  1697     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERBOOLATTRIBUTEL_EXIT );
       
  1698 
       
  1699     return retVal;
       
  1700     }
       
  1701 
       
  1702 // ---------------------------------------------------------------------------
       
  1703 // CCmPluginPacketData::GetBearerStringAttributeL
       
  1704 // ---------------------------------------------------------------------------
       
  1705 //
       
  1706 HBufC* CCmPluginPacketData::GetBearerStringAttributeL( TUint32 aAttribute,
       
  1707         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
  1708         RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
       
  1709     {
       
  1710     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERSTRINGATTRIBUTEL_ENTRY );
       
  1711 
       
  1712     HBufC* retVal( NULL );
       
  1713     if ( ( aAttribute > EPacketDataSpecificAttributes && aAttribute < EGPRSReqTrafficClass )
       
  1714             || ( aAttribute > ECmCommonAttributesStart && aAttribute < ECmCommonAttributesEnd ) )
       
  1715         {
       
  1716         retVal = GetServiceStringAttributeL( aAttribute, aGenRecordArray );
       
  1717         }
       
  1718     else
       
  1719         {
       
  1720         User::Leave( KErrNotSupported );
       
  1721         }
       
  1722 
       
  1723     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERSTRINGATTRIBUTEL_EXIT );
       
  1724     return retVal;
       
  1725     }
       
  1726 
       
  1727 // ---------------------------------------------------------------------------
       
  1728 // CCmPluginPacketData::GetServiceStringAttributeL
       
  1729 // ---------------------------------------------------------------------------
       
  1730 //
       
  1731 HBufC* CCmPluginPacketData::GetServiceStringAttributeL(
       
  1732     TUint32 aAttribute,
       
  1733     RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray)
       
  1734     {
       
  1735     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETSERVICESTRINGATTRIBUTEL_ENTRY );
       
  1736 
       
  1737     HBufC* retVal = NULL;
       
  1738 
       
  1739     CCDWCDMAPacketServiceRecord* serviceRecord =
       
  1740             static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
  1741     switch( aAttribute )
       
  1742         {
       
  1743         case ECmIFName:
       
  1744         case EPacketDataAPName:
       
  1745             {
       
  1746             if ( !serviceRecord->iGPRSAPN.IsNull() )
       
  1747                 {
       
  1748                 retVal = TPtrC( serviceRecord->iGPRSAPN ).AllocL();
       
  1749                 }
       
  1750             }
       
  1751             break;
       
  1752         case EPacketDataPDPAddress:
       
  1753             {
       
  1754             if ( !serviceRecord->iGPRSPDPAddress.IsNull() )
       
  1755                 {
       
  1756                 retVal = TPtrC( serviceRecord->iGPRSPDPAddress ).AllocL();
       
  1757                 }
       
  1758             }
       
  1759             break;
       
  1760         case ECmIFParams:
       
  1761         case EPacketDataIFParams:
       
  1762             {
       
  1763             if ( !serviceRecord->iGPRSIfParams.IsNull() )
       
  1764                 {
       
  1765                 retVal = TPtrC( serviceRecord->iGPRSIfParams ).AllocL();
       
  1766                 }
       
  1767             }
       
  1768             break;
       
  1769         case ECmIFNetworks:
       
  1770         case EPacketDataIFNetworks:
       
  1771             {
       
  1772             if ( !serviceRecord->iGPRSIfNetworks.IsNull() )
       
  1773                 {
       
  1774                 retVal = TPtrC( serviceRecord->iGPRSIfNetworks ).AllocL();
       
  1775                 }
       
  1776             }
       
  1777             break;
       
  1778         case ECmIFAuthName:
       
  1779         case EPacketDataIFAuthName:
       
  1780             {
       
  1781             if ( !serviceRecord->iGPRSIfAuthName.IsNull() )
       
  1782                 {
       
  1783                 retVal = TPtrC( serviceRecord->iGPRSIfAuthName ).AllocL();
       
  1784                 }
       
  1785             }
       
  1786             break;
       
  1787         case ECmIFAuthPass:
       
  1788         case EPacketDataIFAuthPass:
       
  1789             {
       
  1790             if ( !serviceRecord->iGPRSIfAuthPass.IsNull() )
       
  1791                 {
       
  1792                 retVal = TPtrC( serviceRecord->iGPRSIfAuthPass ).AllocL();
       
  1793                 }
       
  1794             }
       
  1795             break;
       
  1796         case ECmIPNetmask:
       
  1797         case EPacketDataIPNetmask:
       
  1798             {
       
  1799             if ( !serviceRecord->iGPRSIPNetMask.IsNull() )
       
  1800                 {
       
  1801                 retVal = TPtrC( serviceRecord->iGPRSIPNetMask ).AllocL();
       
  1802                 }
       
  1803             }
       
  1804             break;
       
  1805         case ECmIPGateway:
       
  1806         case EPacketDataIPGateway:
       
  1807             {
       
  1808             if ( !serviceRecord->iGPRSIPGateway.IsNull() )
       
  1809                 {
       
  1810                 retVal = TPtrC( serviceRecord->iGPRSIPGateway ).AllocL();
       
  1811                 }
       
  1812             }
       
  1813             break;
       
  1814         case ECmIPAddress:
       
  1815         case EPacketDataIPAddr:
       
  1816             {
       
  1817             if ( !serviceRecord->iGPRSIPAddr.IsNull() )
       
  1818                 {
       
  1819                 retVal = TPtrC( serviceRecord->iGPRSIPAddr ).AllocL();
       
  1820                 }
       
  1821             }
       
  1822             break;
       
  1823         case ECmIPNameServer1:
       
  1824         case EPacketDataIPNameServer1:
       
  1825             {
       
  1826             if ( !serviceRecord->iGPRSIPNameServer1.IsNull() )
       
  1827                 {
       
  1828                 retVal = TPtrC( serviceRecord->iGPRSIPNameServer1 ).AllocL();
       
  1829                 }
       
  1830             }
       
  1831             break;
       
  1832         case ECmIPNameServer2:
       
  1833         case EPacketDataIPNameServer2:
       
  1834             {
       
  1835             if ( !serviceRecord->iGPRSIPNameServer2.IsNull() )
       
  1836                 {
       
  1837                 retVal = TPtrC( serviceRecord->iGPRSIPNameServer2 ).AllocL();
       
  1838                 }
       
  1839             }
       
  1840             break;
       
  1841         case ECmIP6NameServer1:
       
  1842         case EPacketDataIPIP6NameServer1:
       
  1843             {
       
  1844             if ( !serviceRecord->iGPRSIP6NameServer1.IsNull() )
       
  1845                 {
       
  1846                 retVal = TPtrC( serviceRecord->iGPRSIP6NameServer1 ).AllocL();
       
  1847                 }
       
  1848             }
       
  1849             break;
       
  1850         case ECmIP6NameServer2:
       
  1851         case EPacketDataIPIP6NameServer2:
       
  1852             {
       
  1853             if ( !serviceRecord->iGPRSIP6NameServer2.IsNull() )
       
  1854                 {
       
  1855                 retVal = TPtrC( serviceRecord->iGPRSIP6NameServer2 ).AllocL();
       
  1856                 }
       
  1857             }
       
  1858             break;
       
  1859         case ECmIPAddrLeaseValidFrom:
       
  1860         case EPacketDataIPAddrLeaseValidFrom:
       
  1861             {
       
  1862             if ( !serviceRecord->iGPRSIPAddrLeaseValidFrom.IsNull() )
       
  1863                 {
       
  1864                 retVal = TPtrC( serviceRecord->iGPRSIPAddrLeaseValidFrom ).AllocL();
       
  1865                 }
       
  1866             }
       
  1867             break;
       
  1868         case ECmIPAddrLeaseValidTo:
       
  1869         case EPacketDataIPAddrLeaseValidTo:
       
  1870             {
       
  1871             if ( !serviceRecord->iGPRSIPAddrLeaseValidTo.IsNull() )
       
  1872                 {
       
  1873                 retVal = TPtrC( serviceRecord->iGPRSIPAddrLeaseValidTo ).AllocL();
       
  1874                 }
       
  1875             }
       
  1876             break;
       
  1877         case ECmConfigDaemonManagerName:
       
  1878         case EPacketDataConfigDaemonManagerName:
       
  1879             {
       
  1880             if ( !serviceRecord->iGPRSConfigDaemonManagerName.IsNull() )
       
  1881                 {
       
  1882                 retVal = TPtrC( serviceRecord->iGPRSConfigDaemonManagerName ).AllocL();
       
  1883                 }
       
  1884             }
       
  1885             break;
       
  1886         case ECmConfigDaemonName:
       
  1887         case EPacketDataConfigDaemonName:
       
  1888             {
       
  1889             if ( !serviceRecord->iGPRSConfigDaemonName.IsNull() )
       
  1890                 {
       
  1891                 retVal = TPtrC( serviceRecord->iGPRSConfigDaemonName ).AllocL();
       
  1892                 }
       
  1893             }
       
  1894             break;
       
  1895 
       
  1896         default:
       
  1897             {
       
  1898             User::Leave( KErrNotFound );
       
  1899             }
       
  1900             break;
       
  1901         }
       
  1902 
       
  1903     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETSERVICESTRINGATTRIBUTEL_EXIT );
       
  1904 
       
  1905     return retVal;
       
  1906     }
       
  1907 
       
  1908 // ---------------------------------------------------------------------------
       
  1909 // CCmPluginPacketData::GetBearerString8AttributeL
       
  1910 // ---------------------------------------------------------------------------
       
  1911 //
       
  1912 HBufC8* CCmPluginPacketData::GetBearerString8AttributeL( TUint32 /*aAttribute*/,
       
  1913                                               RPointerArray<CommsDat::CCDRecordBase>& /*aGenRecordArray*/,
       
  1914                                               RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
       
  1915     {
       
  1916     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERSTRING8ATTRIBUTEL_ENTRY );
       
  1917 
       
  1918     User::Leave( KErrNotSupported );
       
  1919 
       
  1920     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERSTRING8ATTRIBUTEL_EXIT );
       
  1921 
       
  1922     return NULL;
       
  1923     }
       
  1924 
       
  1925 // ---------------------------------------------------------------------------
       
  1926 // CCmPluginPacketData::SetBearerIntAttributeL
       
  1927 // ---------------------------------------------------------------------------
       
  1928 //
       
  1929 void CCmPluginPacketData::SetBearerIntAttributeL( TUint32 aAttribute, TUint32 aValue,
       
  1930                                        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
  1931                                        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  1932     {
       
  1933     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERINTATTRIBUTEL_ENTRY );
       
  1934 
       
  1935     if ( aAttribute >= EPacketDataSpecificAttributes && aAttribute < EPacketDataServiceEnableLLMNR )
       
  1936         {
       
  1937         SetServiceIntAttributeL( aAttribute, aValue, aGenRecordArray );
       
  1938         }
       
  1939     else if ( aAttribute >= EGPRSReqTrafficClass && aAttribute <= EGPRSSourceStatisticsDescriptor )
       
  1940         {
       
  1941         SetQosIntAttributeL( aAttribute, aValue, aBearerSpecRecordArray );
       
  1942         }
       
  1943     else
       
  1944         {
       
  1945         User::Leave( KErrNotFound );
       
  1946         }
       
  1947     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERINTATTRIBUTEL_EXIT );
       
  1948     }
       
  1949 
       
  1950 // ---------------------------------------------------------------------------
       
  1951 // CCmPluginPacketData::SetServiceIntAttributeL
       
  1952 // ---------------------------------------------------------------------------
       
  1953 //
       
  1954 void CCmPluginPacketData::SetServiceIntAttributeL(
       
  1955         TUint32 aAttribute,
       
  1956         TUint32 aValue,
       
  1957         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray )
       
  1958     {
       
  1959     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETSERVICEINTATTRIBUTEL_ENTRY );
       
  1960 
       
  1961     CCDWCDMAPacketServiceRecord* serviceRecord =
       
  1962                 static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
  1963 
       
  1964     switch ( aAttribute )
       
  1965         {
       
  1966         case EPacketDataPDPType:
       
  1967             {
       
  1968             SetPDPTypeL( static_cast<RPacketContext::TProtocolType>( aValue ),
       
  1969                          serviceRecord );
       
  1970             }
       
  1971             break;
       
  1972 
       
  1973         case EPacketDataReqPrecedence:
       
  1974             {
       
  1975             serviceRecord->iGPRSReqPrecedence.SetL( aValue );
       
  1976             }
       
  1977             break;
       
  1978 
       
  1979         case EPacketDataReqDelay:
       
  1980             {
       
  1981             serviceRecord->iGPRSReqDelay.SetL( aValue );
       
  1982             }
       
  1983             break;
       
  1984 
       
  1985         case EPacketDataReliability:
       
  1986             {
       
  1987             serviceRecord->iGPRSReqReliability.SetL( aValue );
       
  1988             }
       
  1989             break;
       
  1990 
       
  1991         case EPacketDataPeakThroughput:
       
  1992             {
       
  1993             serviceRecord->iGPRSReqPeakThroughput.SetL( aValue );
       
  1994             }
       
  1995             break;
       
  1996 
       
  1997         case EPacketDataMeanThroughput:
       
  1998             {
       
  1999             serviceRecord->iGPRSMinMeanThroughput.SetL( aValue );
       
  2000             }
       
  2001             break;
       
  2002 
       
  2003         case EPacketDataMinPrecedence:
       
  2004             {
       
  2005             serviceRecord->iGPRSMinPrecedence.SetL( aValue );
       
  2006             }
       
  2007             break;
       
  2008 
       
  2009         case EPacketDataMinDelay:
       
  2010             {
       
  2011             serviceRecord->iGPRSMinDelay.SetL( aValue );
       
  2012             }
       
  2013             break;
       
  2014 
       
  2015         case EPacketDataMinReliability:
       
  2016             {
       
  2017             serviceRecord->iGPRSMinReliability.SetL( aValue );
       
  2018             }
       
  2019             break;
       
  2020 
       
  2021         case EPacketDataMinPeakThroughput:
       
  2022             {
       
  2023             serviceRecord->iGPRSMinPeakThroughput.SetL( aValue );
       
  2024             }
       
  2025             break;
       
  2026 
       
  2027         case EPacketDataMinMeanThroughput:
       
  2028             {
       
  2029             serviceRecord->iGPRSMinMeanThroughput.SetL( aValue );
       
  2030             }
       
  2031             break;
       
  2032 
       
  2033         case EPacketDataIFAuthRetries:
       
  2034             {
       
  2035             serviceRecord->iGPRSIfAuthRetries.SetL( aValue );
       
  2036             }
       
  2037             break;
       
  2038 
       
  2039         case EPacketDataApType:
       
  2040             {
       
  2041             serviceRecord->iGPRSAPType.SetL( aValue );
       
  2042             }
       
  2043             break;
       
  2044 
       
  2045         case EPacketDataQoSWarningTimeOut:
       
  2046             {
       
  2047             serviceRecord->iGPRSQOSWarningTimeOut.SetL( aValue );
       
  2048             }
       
  2049             break;
       
  2050         default:
       
  2051             {
       
  2052             User::Leave( KErrNotFound );
       
  2053             }
       
  2054         }
       
  2055     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETSERVICEINTATTRIBUTEL_EXIT );
       
  2056     }
       
  2057 
       
  2058 // ---------------------------------------------------------------------------
       
  2059 // CCmPluginPacketData::SetQosIntAttributeL
       
  2060 // ---------------------------------------------------------------------------
       
  2061 //
       
  2062 void CCmPluginPacketData::SetQosIntAttributeL(
       
  2063     TUint32 aAttribute,
       
  2064     TUint32 aValue,
       
  2065     RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  2066     {
       
  2067     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETQOSINTATTRIBUTEL_ENTRY );
       
  2068 
       
  2069     CCDUmtsR99QoSAndOnTableRecord* qosRecord =
       
  2070                 static_cast<CCDUmtsR99QoSAndOnTableRecord*>( aBearerSpecRecordArray[KQosRecordIndex] );
       
  2071 
       
  2072     switch ( aAttribute )
       
  2073         {
       
  2074         case EGPRSReqTrafficClass:
       
  2075             {
       
  2076             qosRecord->iGPRSReqTrafficClass.SetL( static_cast<RPacketQoS::TTrafficClass>( aValue ) );
       
  2077             }
       
  2078             break;
       
  2079 
       
  2080         case EGPRSMinTrafficClass:
       
  2081             {
       
  2082             qosRecord->iGPRSMinTrafficClass.SetL( static_cast<RPacketQoS::TTrafficClass>( aValue ) );
       
  2083             }
       
  2084             break;
       
  2085 
       
  2086         case EGPRSReqDeliveryOrder:
       
  2087             {
       
  2088             qosRecord->iGPRSReqDeliveryOrder.SetL( static_cast<RPacketQoS::TDeliveryOrder>( aValue ) );
       
  2089             }
       
  2090             break;
       
  2091 
       
  2092         case GPRSMinDeliveryOrder:
       
  2093             {
       
  2094             qosRecord->iGPRSMinDeliveryOrder.SetL( static_cast<RPacketQoS::TDeliveryOrder>( aValue ) );
       
  2095             }
       
  2096             break;
       
  2097         case EGPRSReqDeliverErroneousSDU:
       
  2098             {
       
  2099             qosRecord->iGPRSReqDeliverErroneousSDU.SetL( static_cast<RPacketQoS::TErroneousSDUDelivery>( aValue ) );
       
  2100             }
       
  2101             break;
       
  2102         case EGPRSMinDeliverErroneousSDU:
       
  2103             {
       
  2104             qosRecord->iGPRSMinDeliverErroneousSDU.SetL( static_cast<RPacketQoS::TErroneousSDUDelivery>( aValue ) );
       
  2105             }
       
  2106             break;
       
  2107         case EGPRSReqMaxSDUSize:
       
  2108             {
       
  2109             qosRecord->iGPRSReqMaxSDUSize.SetL( aValue );
       
  2110             }
       
  2111             break;
       
  2112 
       
  2113         case EGPRSMinAcceptableMaxSDUSize:
       
  2114             {
       
  2115             qosRecord->iGPRSMinAcceptableMaxSDUSize.SetL( aValue );
       
  2116             }
       
  2117             break;
       
  2118 
       
  2119         case EGPRSReqMaxUplinkRate:
       
  2120             {
       
  2121             qosRecord->iGPRSReqMaxUplinkRate.SetL( aValue );
       
  2122             }
       
  2123             break;
       
  2124 
       
  2125         case EGPRSReqMinUplinkRate:
       
  2126             {
       
  2127             qosRecord->iGPRSReqMinUplinkRate.SetL( aValue );
       
  2128             }
       
  2129             break;
       
  2130 
       
  2131         case EGPRSReqMaxDownlinkRate:
       
  2132             {
       
  2133             qosRecord->iGPRSReqMaxDownlinkRate.SetL( aValue );
       
  2134             }
       
  2135             break;
       
  2136 
       
  2137         case EGPRSReqMinDownlinkRate:
       
  2138             {
       
  2139             qosRecord->iGPRSReqMinDownlinkRate.SetL( aValue );
       
  2140             }
       
  2141             break;
       
  2142 
       
  2143         case EGPRSReqBER:
       
  2144             {
       
  2145             qosRecord->iGPRSReqBER.SetL( static_cast<RPacketQoS::TBitErrorRatio>( aValue ) );
       
  2146             }
       
  2147             break;
       
  2148 
       
  2149         case EGPRSMaxBER:
       
  2150             {
       
  2151             qosRecord->iGPRSMaxBER.SetL( static_cast<RPacketQoS::TBitErrorRatio>( aValue ) );
       
  2152             }
       
  2153             break;
       
  2154 
       
  2155         case EGPRSReqSDUErrorRatio:
       
  2156             {
       
  2157             qosRecord->iGPRSReqSDUErrorRatio.SetL( static_cast<RPacketQoS::TSDUErrorRatio>( aValue ) );
       
  2158             }
       
  2159             break;
       
  2160 
       
  2161         case EGPRSMaxSDUErrorRatio:
       
  2162             {
       
  2163             qosRecord->iGPRSMaxSDUErrorRatio.SetL( static_cast<RPacketQoS::TSDUErrorRatio>( aValue ) );
       
  2164             }
       
  2165             break;
       
  2166 
       
  2167         case EGPRSReqTrafficHandlingPriority:
       
  2168             {
       
  2169             qosRecord->iGPRSReqTrafficHandlingPriority.SetL( static_cast<RPacketQoS::TTrafficHandlingPriority>( aValue ) );
       
  2170             }
       
  2171             break;
       
  2172 
       
  2173         case EGPRSMinTrafficHandlingPriority:
       
  2174             {
       
  2175             qosRecord->iGPRSMinTrafficHandlingPriority.SetL( static_cast<RPacketQoS::TTrafficHandlingPriority>( aValue ) );
       
  2176             }
       
  2177             break;
       
  2178 
       
  2179         case EGPRSReqTransferDelay:
       
  2180             {
       
  2181             qosRecord->iGPRSReqTransferDelay.SetL( aValue );
       
  2182             }
       
  2183             break;
       
  2184 
       
  2185         case EGPRSMaxTransferDelay:
       
  2186             {
       
  2187             qosRecord->iGPRSMaxTransferDelay.SetL( aValue );
       
  2188             }
       
  2189             break;
       
  2190 
       
  2191         case EGPRSReqGuaranteedUplinkRate:
       
  2192             {
       
  2193             qosRecord->iGPRSReqGuaranteedUplinkRate.SetL( aValue );
       
  2194             }
       
  2195             break;
       
  2196 
       
  2197         case EGPRSMinGuaranteedUplinkRate:
       
  2198             {
       
  2199             qosRecord->iGPRSMinGuaranteedUplinkRate.SetL( aValue );
       
  2200             }
       
  2201             break;
       
  2202 
       
  2203         case EGPRSReqGuaranteedDownlinkRate:
       
  2204             {
       
  2205             qosRecord->iGPRSReqGuaranteedDownlinkRate.SetL( aValue );
       
  2206             }
       
  2207             break;
       
  2208 
       
  2209         case EGPRSMinGuaranteedDownlinkRate:
       
  2210             {
       
  2211             qosRecord->iGPRSMinGuaranteedDownlinkRate.SetL( aValue );
       
  2212             }
       
  2213             break;
       
  2214 
       
  2215         case EGPRSSourceStatisticsDescriptor:
       
  2216             {
       
  2217             qosRecord->iGPRSSourceStatisticsDescriptor.SetL( static_cast<RPacketQoS::TSourceStatisticsDescriptor>( aValue ) );
       
  2218             }
       
  2219             break;
       
  2220 
       
  2221         default:
       
  2222             {
       
  2223             User::Leave( KErrNotFound );
       
  2224             }
       
  2225             break;
       
  2226         }
       
  2227     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETQOSINTATTRIBUTEL_EXIT );
       
  2228     }
       
  2229 
       
  2230 // ---------------------------------------------------------------------------
       
  2231 // CCmPluginPacketData::SetBearerBoolAttributeL
       
  2232 // ---------------------------------------------------------------------------
       
  2233 //
       
  2234 void CCmPluginPacketData::SetBearerBoolAttributeL( TUint32 aAttribute, TBool aValue,
       
  2235                                         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
  2236                                         RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  2237     {
       
  2238     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERBOOLATTRIBUTEL_ENTRY );
       
  2239 
       
  2240     CCDWCDMAPacketServiceRecord* serviceRecord =
       
  2241                     static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
       
  2242 
       
  2243     switch( aAttribute )
       
  2244         {
       
  2245         case EPacketDataOutGoing:
       
  2246             {
       
  2247             iOutgoing = aValue;
       
  2248             }
       
  2249             break;
       
  2250         case EPacketDataDataCompression:
       
  2251             {
       
  2252             serviceRecord->iGPRSDataCompression.SetL( aValue );
       
  2253             }
       
  2254             break;
       
  2255         case EPacketDataHeaderCompression:
       
  2256             {
       
  2257             serviceRecord->iGPRSHeaderCompression.SetL( aValue );
       
  2258             }
       
  2259             break;
       
  2260         case EPacketDataUseEdge:
       
  2261             {
       
  2262             serviceRecord->iGPRSUseEdge.SetL( aValue );
       
  2263             }
       
  2264             break;
       
  2265         case EPacketDataAnonymousAccess:
       
  2266             {
       
  2267             serviceRecord->iGPRSAnonymousAccess.SetL( aValue );
       
  2268             }
       
  2269             break;
       
  2270         case ECmIFPromptForAuth:
       
  2271         case EPacketDataIFPromptForAuth:
       
  2272             {
       
  2273             serviceRecord->iGPRSIfPromptForAuth.SetL( aValue );
       
  2274             }
       
  2275             break;
       
  2276         case ECmIPAddFromServer:
       
  2277         case EPacketDataIPAddrFromServer:
       
  2278             {
       
  2279             serviceRecord->iGPRSIPAddrFromServer.SetL( aValue );
       
  2280             }
       
  2281             break;
       
  2282         case ECmIPDNSAddrFromServer:
       
  2283         case EPacketDataIPDNSAddrFromServer:
       
  2284             {
       
  2285             serviceRecord->iGPRSIPDNSAddrFromServer.SetL( aValue );
       
  2286             }
       
  2287             break;
       
  2288         case ECmIP6DNSAddrFromServer:
       
  2289         case EPacketDataIPIP6DNSAddrFromServer:
       
  2290             {
       
  2291             serviceRecord->iGPRSIP6DNSAddrFromServer.SetL( aValue );
       
  2292             }
       
  2293             break;
       
  2294         case ECmEnableLPCExtension:
       
  2295         case EPacketDataEnableLcpExtension:
       
  2296             {
       
  2297             serviceRecord->iGPRSEnableLCPExtension.SetL( aValue );
       
  2298             }
       
  2299             break;
       
  2300         case ECmDisablePlainTextAuth:
       
  2301         case EPacketDataDisablePlainTextAuth:
       
  2302             {
       
  2303             serviceRecord->iGPRSDisablePlainTextAuth.SetL( aValue );
       
  2304             }
       
  2305             break;
       
  2306         case EGPRSSignallingIndication:
       
  2307             {
       
  2308             static_cast<CCDUmtsR99QoSAndOnTableRecord*>
       
  2309                  ( aBearerSpecRecordArray[KQosRecordIndex] )->iGPRSSignallingIndication.SetL( aValue );
       
  2310             }
       
  2311             break;
       
  2312         case EGPRS_ImCnSignallingIndication:
       
  2313             {
       
  2314             static_cast<CCDUmtsR99QoSAndOnTableRecord*>
       
  2315                  ( aBearerSpecRecordArray[KQosRecordIndex] )->iGPRS_ImCnSignallingIndication.SetL( aValue );
       
  2316             }
       
  2317             break;
       
  2318         case EPacketDataServiceEnableLLMNR:
       
  2319             {
       
  2320             serviceRecord->iServiceEnableLlmnr.SetL( aValue );
       
  2321             }
       
  2322             break;
       
  2323         default:
       
  2324             {
       
  2325             User::Leave( KErrNotFound );
       
  2326             }
       
  2327             break;
       
  2328         }
       
  2329     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERBOOLATTRIBUTEL_EXIT );
       
  2330     }
       
  2331 
       
  2332 
       
  2333 // ---------------------------------------------------------------------------
       
  2334 // CCmPluginPacketData::SetBearerStringAttributeL
       
  2335 // ---------------------------------------------------------------------------
       
  2336 //
       
  2337 void CCmPluginPacketData::SetBearerStringAttributeL(
       
  2338         TUint32 aAttribute,
       
  2339         const TDesC16& aValue,
       
  2340         RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
       
  2341         RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
       
  2342     {
       
  2343     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERSTRINGATTRIBUTEL_ENTRY );
       
  2344 
       
  2345     CCDWCDMAPacketServiceRecord* serviceRecord =
       
  2346             static_cast<CCDWCDMAPacketServiceRecord*>(
       
  2347                     aGenRecordArray[KServiceRecordIndex] );
       
  2348 
       
  2349     switch ( aAttribute )
       
  2350         {
       
  2351         case EPacketDataAPName:
       
  2352             {
       
  2353             serviceRecord->iGPRSAPN.SetL( aValue );
       
  2354             }
       
  2355             break;
       
  2356 
       
  2357         case EPacketDataPDPAddress:
       
  2358             {
       
  2359             serviceRecord->iGPRSPDPAddress.SetL( aValue );
       
  2360             }
       
  2361             break;
       
  2362 
       
  2363         case ECmIFParams:
       
  2364         case EPacketDataIFParams:
       
  2365             {
       
  2366             serviceRecord->iGPRSIfParams.SetL( aValue );
       
  2367             }
       
  2368             break;
       
  2369 
       
  2370         case ECmIFNetworks:
       
  2371         case EPacketDataIFNetworks:
       
  2372             {
       
  2373             serviceRecord->iGPRSIfNetworks.SetL( aValue );
       
  2374             }
       
  2375             break;
       
  2376 
       
  2377         case ECmIFAuthName:
       
  2378         case EPacketDataIFAuthName:
       
  2379             {
       
  2380             serviceRecord->iGPRSIfAuthName.SetL( aValue );
       
  2381             }
       
  2382             break;
       
  2383 
       
  2384         case ECmIFAuthPass:
       
  2385         case EPacketDataIFAuthPass:
       
  2386             {
       
  2387             serviceRecord->iGPRSIfAuthPass.SetL( aValue );
       
  2388             }
       
  2389             break;
       
  2390 
       
  2391         case ECmIPNetmask:
       
  2392         case EPacketDataIPNetmask:
       
  2393             {
       
  2394             serviceRecord->iGPRSIPNetMask.SetL( aValue );
       
  2395             }
       
  2396             break;
       
  2397 
       
  2398         case ECmIPGateway:
       
  2399         case EPacketDataIPGateway:
       
  2400             {
       
  2401             serviceRecord->iGPRSIPGateway.SetL( aValue );
       
  2402             }
       
  2403             break;
       
  2404 
       
  2405         case ECmIPAddress:
       
  2406         case EPacketDataIPAddr:
       
  2407             {
       
  2408             if ( ( aValue.Compare( KUnspecifiedIPv4 ) == 0 ) ||
       
  2409                     ( aValue.Compare( KNullDesC ) == 0 ) )
       
  2410                 {
       
  2411                 // If unspecified or NULL address is set dynamic
       
  2412                 // IP must be enabled.
       
  2413                 SetBearerBoolAttributeL( ECmIPAddFromServer,
       
  2414                                          ETrue,
       
  2415                                          aGenRecordArray,
       
  2416                                          aBearerSpecRecordArray );
       
  2417                 }
       
  2418             else
       
  2419                 {
       
  2420                 // If valid address is set dynamic IP is disabled.
       
  2421                 SetBearerBoolAttributeL( ECmIPAddFromServer,
       
  2422                                          EFalse,
       
  2423                                          aGenRecordArray,
       
  2424                                          aBearerSpecRecordArray );
       
  2425                 }
       
  2426             serviceRecord->iGPRSIPAddr.SetL( aValue );
       
  2427             }
       
  2428             break;
       
  2429 
       
  2430         case ECmIPNameServer1:
       
  2431         case EPacketDataIPNameServer1:
       
  2432             {
       
  2433             serviceRecord->iGPRSIPNameServer1.SetL( aValue );
       
  2434             }
       
  2435             break;
       
  2436 
       
  2437         case ECmIPNameServer2:
       
  2438         case EPacketDataIPNameServer2:
       
  2439             {
       
  2440             serviceRecord->iGPRSIPNameServer2.SetL( aValue );
       
  2441             }
       
  2442             break;
       
  2443 
       
  2444         case ECmIP6NameServer1:
       
  2445         case EPacketDataIPIP6NameServer1:
       
  2446             {
       
  2447             serviceRecord->iGPRSIP6NameServer1.SetL( aValue );
       
  2448             }
       
  2449             break;
       
  2450 
       
  2451         case ECmIP6NameServer2:
       
  2452         case EPacketDataIPIP6NameServer2:
       
  2453             {
       
  2454             serviceRecord->iGPRSIP6NameServer2.SetL( aValue );
       
  2455             }
       
  2456             break;
       
  2457 
       
  2458         case ECmIPAddrLeaseValidFrom:
       
  2459         case EPacketDataIPAddrLeaseValidFrom:
       
  2460             {
       
  2461             serviceRecord->iGPRSIPAddrLeaseValidFrom.SetL( aValue );
       
  2462             }
       
  2463             break;
       
  2464 
       
  2465         case ECmIPAddrLeaseValidTo:
       
  2466         case EPacketDataIPAddrLeaseValidTo:
       
  2467             {
       
  2468             serviceRecord->iGPRSIPAddrLeaseValidTo.SetL( aValue );
       
  2469             }
       
  2470             break;
       
  2471 
       
  2472         case ECmConfigDaemonManagerName:
       
  2473         case EPacketDataConfigDaemonManagerName:
       
  2474             {
       
  2475             serviceRecord->iGPRSConfigDaemonManagerName.SetL( aValue );
       
  2476             }
       
  2477             break;
       
  2478 
       
  2479         case ECmConfigDaemonName:
       
  2480         case EPacketDataConfigDaemonName:
       
  2481             {
       
  2482             serviceRecord->iGPRSConfigDaemonName.SetL( aValue );
       
  2483             }
       
  2484             break;
       
  2485 
       
  2486         default:
       
  2487             {
       
  2488             User::Leave( KErrNotSupported );
       
  2489             }
       
  2490             break;
       
  2491         }
       
  2492 
       
  2493     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERSTRINGATTRIBUTEL_EXIT );
       
  2494     }
       
  2495 
       
  2496 // ---------------------------------------------------------------------------
       
  2497 // CCmPluginPacketData::SetBearerString8AttributeL
       
  2498 // ---------------------------------------------------------------------------
       
  2499 //
       
  2500 void CCmPluginPacketData::SetBearerString8AttributeL( TUint32 /*aAttribute*/, const TDesC8& /*aValue*/,
       
  2501                                            RPointerArray<CommsDat::CCDRecordBase>& /*aGenRecordArray*/,
       
  2502                                            RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
       
  2503     {
       
  2504     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERSTRING8ATTRIBUTEL_ENTRY );
       
  2505 
       
  2506     User::Leave( KErrNotSupported );
       
  2507 
       
  2508     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERSTRING8ATTRIBUTEL_EXIT );
       
  2509 
       
  2510     return;
       
  2511     }
       
  2512 
       
  2513 
       
  2514 // ---------------------------------------------------------------------------
       
  2515 // CCmPluginPacketData::GetBearerInfoIntL
       
  2516 // ---------------------------------------------------------------------------
       
  2517 //
       
  2518 TUint32 CCmPluginPacketData::GetBearerInfoIntL( TUint32 aAttribute ) const
       
  2519     {
       
  2520     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOINTL_ENTRY );
       
  2521 
       
  2522     TUint32 retVal( 0 );
       
  2523     switch( aAttribute )
       
  2524         {
       
  2525         case ECmBearerType:
       
  2526             {
       
  2527             retVal = iBearerType;
       
  2528             }
       
  2529             break;
       
  2530         case ECmCommsDBBearerType:
       
  2531             {
       
  2532             retVal = KCommDbBearerWcdma;
       
  2533             }
       
  2534             break;
       
  2535 
       
  2536         case ECmDefaultUiPriority:
       
  2537         case ECmDefaultPriority:
       
  2538             {
       
  2539             retVal = KDefaultPriorityPacketData;
       
  2540             }
       
  2541             break;
       
  2542         case ECmExtensionLevel:
       
  2543             {
       
  2544             retVal = KExtensionBaseLevel;
       
  2545             }
       
  2546             break;
       
  2547 
       
  2548         default:
       
  2549             {
       
  2550             User::Leave( KErrNotSupported );
       
  2551             }
       
  2552             break;
       
  2553         }
       
  2554 
       
  2555     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOINTL_EXIT );
       
  2556 
       
  2557     return retVal;
       
  2558     }
       
  2559 
       
  2560 // ---------------------------------------------------------------------------
       
  2561 // CCmPluginPacketData::GetBearerInfoBoolL
       
  2562 // ---------------------------------------------------------------------------
       
  2563 //
       
  2564 TBool CCmPluginPacketData::GetBearerInfoBoolL( TUint32 aAttribute ) const
       
  2565     {
       
  2566     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOBOOLL_ENTRY );
       
  2567 
       
  2568     TBool retVal( EFalse );
       
  2569     switch( aAttribute )
       
  2570         {
       
  2571         case ECmCoverage:
       
  2572             {
       
  2573 #ifndef __WINS__
       
  2574             CCmPDCoverageCheck* coverage = new (ELeave) CCmPDCoverageCheck;
       
  2575             CleanupStack::PushL( coverage );
       
  2576 
       
  2577             retVal = coverage->IsThereCoverageL();
       
  2578 
       
  2579             CleanupStack::PopAndDestroy( coverage );
       
  2580 #else
       
  2581             retVal = ETrue;
       
  2582 #endif
       
  2583             }
       
  2584             break;
       
  2585         case ECmDestination:
       
  2586             {
       
  2587             retVal = EFalse;
       
  2588             }
       
  2589             break;
       
  2590         case ECmBearerHasUi:
       
  2591             {
       
  2592             retVal = EFalse;
       
  2593             }
       
  2594             break;
       
  2595         case ECmIPv6Supported:
       
  2596             {
       
  2597             retVal = FeatureManager::FeatureSupported( KFeatureIdIPv6 );
       
  2598             }
       
  2599             break;
       
  2600         case ECmVirtual:
       
  2601             {
       
  2602             retVal = EFalse;
       
  2603             }
       
  2604             break;
       
  2605 
       
  2606         default:
       
  2607             {
       
  2608             User::Leave( KErrNotSupported );
       
  2609             }
       
  2610         break;
       
  2611         }
       
  2612 
       
  2613     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOBOOLL_EXIT );
       
  2614 
       
  2615     return retVal;
       
  2616     }
       
  2617 
       
  2618 
       
  2619 // ---------------------------------------------------------------------------
       
  2620 // CCmPluginPacketData::GetBearerInfoStringL
       
  2621 // ---------------------------------------------------------------------------
       
  2622 //
       
  2623 HBufC* CCmPluginPacketData::GetBearerInfoStringL( TUint32 aAttribute ) const
       
  2624     {
       
  2625     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRINGL_ENTRY );
       
  2626 
       
  2627     HBufC* retVal( NULL );
       
  2628     switch( aAttribute )
       
  2629         {
       
  2630         default:
       
  2631             {
       
  2632             User::Leave( KErrNotSupported );
       
  2633             }
       
  2634         break;
       
  2635         }
       
  2636 
       
  2637     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRINGL_EXIT );
       
  2638 
       
  2639     return retVal;
       
  2640     }
       
  2641 
       
  2642 // ---------------------------------------------------------------------------
       
  2643 // CCmPluginPacketData::GetBearerInfoString8L
       
  2644 // ---------------------------------------------------------------------------
       
  2645 //
       
  2646 HBufC8* CCmPluginPacketData::GetBearerInfoString8L( TUint32 aAttribute ) const
       
  2647     {
       
  2648     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRING8L_ENTRY );
       
  2649 
       
  2650     HBufC8* retVal( NULL );
       
  2651     switch( aAttribute )
       
  2652         {
       
  2653         default:
       
  2654             {
       
  2655 
       
  2656             User::Leave( KErrNotSupported );
       
  2657             }
       
  2658         break;
       
  2659         }
       
  2660 
       
  2661     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRING8L_EXIT );
       
  2662 
       
  2663     return retVal;
       
  2664     }
       
  2665 
       
  2666 // ---------------------------------------------------------------------------
       
  2667 // CCmPluginPacketData::PrepareToCopyDataL
       
  2668 // ---------------------------------------------------------------------------
       
  2669 //
       
  2670 void CCmPluginPacketData::PrepareToCopyDataL( CCmPluginBaseEng* aCopyInstance )
       
  2671     {
       
  2672     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_PREPARETOCOPYDATAL_ENTRY );
       
  2673 
       
  2674     CCmPluginPacketData* plugin = static_cast<CCmPluginPacketData*>( aCopyInstance );
       
  2675 
       
  2676     plugin->iOutgoing = iOutgoing;
       
  2677 
       
  2678     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_PREPARETOCOPYDATAL_EXIT );
       
  2679     }
       
  2680 
       
  2681 // ---------------------------------------------------------------------------
       
  2682 // CCmPluginPacketData::CopyServiceRecordL
       
  2683 // ---------------------------------------------------------------------------
       
  2684 //
       
  2685 CommsDat::CCDRecordBase* CCmPluginPacketData::CopyServiceRecordL()
       
  2686     {
       
  2687     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_COPYSERVICERECORDL_ENTRY );
       
  2688 
       
  2689     __ASSERT_ALWAYS( iServiceRecord != NULL, User::Leave( KErrNotFound ));
       
  2690 
       
  2691     CCDWCDMAPacketServiceRecord* origServiceRecord =
       
  2692             static_cast<CCDWCDMAPacketServiceRecord*>( iServiceRecord );
       
  2693 
       
  2694     // New service record
       
  2695     CCDWCDMAPacketServiceRecord* serviceRecord = NULL;
       
  2696     if ( iOutgoing )
       
  2697         {
       
  2698         serviceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
  2699                 CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
       
  2700         }
       
  2701     else
       
  2702         {
       
  2703         serviceRecord = static_cast<CCDWCDMAPacketServiceRecord *>(
       
  2704                 CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
       
  2705         }
       
  2706 
       
  2707     CleanupStack::PushL( serviceRecord );
       
  2708 
       
  2709     serviceRecord->iRecordName.SetL( origServiceRecord->iRecordName );
       
  2710 
       
  2711     if ( !origServiceRecord->iServiceEnableLlmnr.IsNull() )
       
  2712         {
       
  2713         serviceRecord->iServiceEnableLlmnr.SetL( origServiceRecord->iServiceEnableLlmnr );
       
  2714         }
       
  2715 
       
  2716     if ( !origServiceRecord->iGPRSAPN.IsNull() )
       
  2717         {
       
  2718         serviceRecord->iGPRSAPN.SetL( origServiceRecord->iGPRSAPN );
       
  2719         }
       
  2720     if ( !origServiceRecord->iGPRSPDPType.IsNull() )
       
  2721         {
       
  2722         serviceRecord->iGPRSPDPType.SetL( origServiceRecord->iGPRSPDPType );
       
  2723         }
       
  2724     if ( !origServiceRecord->iGPRSPDPAddress.IsNull() )
       
  2725         {
       
  2726         serviceRecord->iGPRSPDPAddress.SetL( origServiceRecord->iGPRSPDPAddress );
       
  2727         }
       
  2728     if ( !origServiceRecord->iGPRSReqPrecedence.IsNull() )
       
  2729         {
       
  2730         serviceRecord->iGPRSReqPrecedence.SetL( origServiceRecord->iGPRSReqPrecedence );
       
  2731         }
       
  2732     if ( !origServiceRecord->iGPRSReqDelay.IsNull() )
       
  2733         {
       
  2734         serviceRecord->iGPRSReqDelay.SetL( origServiceRecord->iGPRSReqDelay );
       
  2735         }
       
  2736     if ( !origServiceRecord->iGPRSReqReliability.IsNull() )
       
  2737         {
       
  2738         serviceRecord->iGPRSReqReliability.SetL( origServiceRecord->iGPRSReqReliability );
       
  2739         }
       
  2740     if ( !origServiceRecord->iGPRSReqPeakThroughput.IsNull() )
       
  2741         {
       
  2742         serviceRecord->iGPRSReqPeakThroughput.SetL( origServiceRecord->iGPRSReqPeakThroughput );
       
  2743         }
       
  2744     if ( !origServiceRecord->iGPRSReqMeanThroughput.IsNull() )
       
  2745         {
       
  2746         serviceRecord->iGPRSReqMeanThroughput.SetL( origServiceRecord->iGPRSReqMeanThroughput );
       
  2747         }
       
  2748     if ( !origServiceRecord->iGPRSMinPrecedence.IsNull() )
       
  2749         {
       
  2750         serviceRecord->iGPRSMinPrecedence.SetL( origServiceRecord->iGPRSMinPrecedence );
       
  2751         }
       
  2752     if ( !origServiceRecord->iGPRSMinDelay.IsNull() )
       
  2753         {
       
  2754         serviceRecord->iGPRSMinDelay.SetL( origServiceRecord->iGPRSMinDelay );
       
  2755         }
       
  2756     if ( !origServiceRecord->iGPRSMinReliability.IsNull() )
       
  2757         {
       
  2758         serviceRecord->iGPRSMinReliability.SetL( origServiceRecord->iGPRSMinReliability );
       
  2759         }
       
  2760     if ( !origServiceRecord->iGPRSMinPeakThroughput.IsNull() )
       
  2761         {
       
  2762         serviceRecord->iGPRSMinPeakThroughput.SetL( origServiceRecord->iGPRSMinPeakThroughput );
       
  2763         }
       
  2764     if ( !origServiceRecord->iGPRSMinMeanThroughput.IsNull() )
       
  2765         {
       
  2766         serviceRecord->iGPRSMinMeanThroughput.SetL( origServiceRecord->iGPRSMinMeanThroughput );
       
  2767         }
       
  2768     if ( !origServiceRecord->iGPRSDataCompression.IsNull() )
       
  2769         {
       
  2770         serviceRecord->iGPRSDataCompression.SetL( origServiceRecord->iGPRSDataCompression );
       
  2771         }
       
  2772     if ( !origServiceRecord->iGPRSHeaderCompression.IsNull() )
       
  2773         {
       
  2774         serviceRecord->iGPRSHeaderCompression.SetL( origServiceRecord->iGPRSHeaderCompression );
       
  2775         }
       
  2776     if ( !origServiceRecord->iGPRSUseEdge.IsNull() )
       
  2777         {
       
  2778         serviceRecord->iGPRSUseEdge.SetL( origServiceRecord->iGPRSUseEdge );
       
  2779         }
       
  2780     if ( !origServiceRecord->iGPRSAnonymousAccess.IsNull() )
       
  2781         {
       
  2782         serviceRecord->iGPRSAnonymousAccess.SetL( origServiceRecord->iGPRSAnonymousAccess );
       
  2783         }
       
  2784     if ( !origServiceRecord->iGPRSIfParams.IsNull() )
       
  2785         {
       
  2786         serviceRecord->iGPRSIfParams.SetL( origServiceRecord->iGPRSIfParams );
       
  2787         }
       
  2788     if ( !origServiceRecord->iGPRSIfNetworks.IsNull() )
       
  2789         {
       
  2790         serviceRecord->iGPRSIfNetworks.SetL( origServiceRecord->iGPRSIfNetworks );
       
  2791         }
       
  2792     if ( !origServiceRecord->iGPRSIfPromptForAuth.IsNull() )
       
  2793         {
       
  2794         serviceRecord->iGPRSIfPromptForAuth.SetL( origServiceRecord->iGPRSIfPromptForAuth );
       
  2795         }
       
  2796     if ( !origServiceRecord->iGPRSIfAuthName.IsNull() )
       
  2797         {
       
  2798         serviceRecord->iGPRSIfAuthName.SetL( origServiceRecord->iGPRSIfAuthName );
       
  2799         }
       
  2800     if ( !origServiceRecord->iGPRSIfAuthPass.IsNull() )
       
  2801         {
       
  2802         serviceRecord->iGPRSIfAuthPass.SetL( origServiceRecord->iGPRSIfAuthPass );
       
  2803         }
       
  2804     if ( !origServiceRecord->iGPRSIfAuthRetries.IsNull() )
       
  2805         {
       
  2806         serviceRecord->iGPRSIfAuthRetries.SetL( origServiceRecord->iGPRSIfAuthRetries );
       
  2807         }
       
  2808     if ( !origServiceRecord->iGPRSIPNetMask.IsNull() )
       
  2809         {
       
  2810         serviceRecord->iGPRSIPNetMask.SetL( origServiceRecord->iGPRSIPNetMask );
       
  2811         }
       
  2812     if ( !origServiceRecord->iGPRSIPGateway.IsNull() )
       
  2813         {
       
  2814         serviceRecord->iGPRSIPGateway.SetL( origServiceRecord->iGPRSIPGateway );
       
  2815         }
       
  2816     if ( !origServiceRecord->iGPRSIPAddrFromServer.IsNull() )
       
  2817         {
       
  2818         serviceRecord->iGPRSIPAddrFromServer.SetL( origServiceRecord->iGPRSIPAddrFromServer );
       
  2819         }
       
  2820     if ( !origServiceRecord->iGPRSIPAddr.IsNull() )
       
  2821         {
       
  2822         serviceRecord->iGPRSIPAddr.SetL( origServiceRecord->iGPRSIPAddr );
       
  2823         }
       
  2824     if ( !origServiceRecord->iGPRSIPDNSAddrFromServer.IsNull() )
       
  2825         {
       
  2826         serviceRecord->iGPRSIPDNSAddrFromServer.SetL( origServiceRecord->iGPRSIPDNSAddrFromServer );
       
  2827         }
       
  2828     if ( !origServiceRecord->iGPRSIPNameServer1.IsNull() )
       
  2829         {
       
  2830         serviceRecord->iGPRSIPNameServer1.SetL( origServiceRecord->iGPRSIPNameServer1 );
       
  2831         }
       
  2832     if ( !origServiceRecord->iGPRSIPNameServer2.IsNull() )
       
  2833         {
       
  2834         serviceRecord->iGPRSIPNameServer2.SetL( origServiceRecord->iGPRSIPNameServer2 );
       
  2835         }
       
  2836     if ( !origServiceRecord->iGPRSIP6DNSAddrFromServer.IsNull() )
       
  2837         {
       
  2838         serviceRecord->iGPRSIP6DNSAddrFromServer.SetL( origServiceRecord->iGPRSIP6DNSAddrFromServer );
       
  2839         }
       
  2840     if ( !origServiceRecord->iGPRSIP6NameServer1.IsNull() )
       
  2841         {
       
  2842         serviceRecord->iGPRSIP6NameServer1.SetL( origServiceRecord->iGPRSIP6NameServer1 );
       
  2843         }
       
  2844     if ( !origServiceRecord->iGPRSIP6NameServer2.IsNull() )
       
  2845         {
       
  2846         serviceRecord->iGPRSIP6NameServer2.SetL( origServiceRecord->iGPRSIP6NameServer2 );
       
  2847         }
       
  2848     if ( !origServiceRecord->iGPRSIPAddrLeaseValidFrom.IsNull() )
       
  2849         {
       
  2850         serviceRecord->iGPRSIPAddrLeaseValidFrom.SetL( origServiceRecord->iGPRSIPAddrLeaseValidFrom );
       
  2851         }
       
  2852     if ( !origServiceRecord->iGPRSIPAddrLeaseValidTo.IsNull() )
       
  2853         {
       
  2854         serviceRecord->iGPRSIPAddrLeaseValidTo.SetL( origServiceRecord->iGPRSIPAddrLeaseValidTo );
       
  2855         }
       
  2856     if ( !origServiceRecord->iGPRSConfigDaemonManagerName.IsNull() )
       
  2857         {
       
  2858         serviceRecord->iGPRSConfigDaemonManagerName.SetL( origServiceRecord->iGPRSConfigDaemonManagerName );
       
  2859         }
       
  2860     if ( !origServiceRecord->iGPRSConfigDaemonName.IsNull() )
       
  2861         {
       
  2862         serviceRecord->iGPRSConfigDaemonName.SetL( origServiceRecord->iGPRSConfigDaemonName );
       
  2863         }
       
  2864     if ( !origServiceRecord->iGPRSEnableLCPExtension.IsNull() )
       
  2865         {
       
  2866         serviceRecord->iGPRSEnableLCPExtension.SetL( origServiceRecord->iGPRSEnableLCPExtension );
       
  2867         }
       
  2868     if ( !origServiceRecord->iGPRSDisablePlainTextAuth.IsNull() )
       
  2869         {
       
  2870         serviceRecord->iGPRSDisablePlainTextAuth.SetL( origServiceRecord->iGPRSDisablePlainTextAuth );
       
  2871         }
       
  2872     if ( !origServiceRecord->iGPRSAPType.IsNull() )
       
  2873         {
       
  2874         serviceRecord->iGPRSAPType.SetL( origServiceRecord->iGPRSAPType );
       
  2875         }
       
  2876     if ( !origServiceRecord->iGPRSQOSWarningTimeOut.IsNull() )
       
  2877         {
       
  2878         serviceRecord->iGPRSQOSWarningTimeOut.SetL( origServiceRecord->iGPRSQOSWarningTimeOut );
       
  2879         }
       
  2880     if ( !origServiceRecord->iUmtsR99QoSAndOnTable.IsNull() )
       
  2881         {
       
  2882         serviceRecord->iUmtsR99QoSAndOnTable.SetL( origServiceRecord->iUmtsR99QoSAndOnTable );
       
  2883         }
       
  2884     if ( !origServiceRecord->iGPRSR5DataCompression.IsNull() )
       
  2885         {
       
  2886         serviceRecord->iGPRSR5DataCompression.SetL( origServiceRecord->iGPRSR5DataCompression );
       
  2887         }
       
  2888     if ( !origServiceRecord->iGPRSR5HeaderCompression.IsNull() )
       
  2889         {
       
  2890         serviceRecord->iGPRSR5HeaderCompression.SetL( origServiceRecord->iGPRSR5HeaderCompression );
       
  2891         }
       
  2892     if ( !origServiceRecord->iGPRSPacketFlowIdentifier.IsNull() )
       
  2893         {
       
  2894         serviceRecord->iGPRSPacketFlowIdentifier.SetL( origServiceRecord->iGPRSPacketFlowIdentifier );
       
  2895         }
       
  2896     if ( !origServiceRecord->iGPRSUmtsGprsRelease.IsNull() )
       
  2897         {
       
  2898         serviceRecord->iGPRSUmtsGprsRelease.SetL( origServiceRecord->iGPRSUmtsGprsRelease );
       
  2899         }
       
  2900 
       
  2901     CleanupStack::Pop( serviceRecord );
       
  2902 
       
  2903     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_COPYSERVICERECORDL_EXIT );
       
  2904     return serviceRecord;
       
  2905     }
       
  2906 
       
  2907 // ---------------------------------------------------------------------------
       
  2908 // CCmPluginPacketData::ResetBearerRecords
       
  2909 // ---------------------------------------------------------------------------
       
  2910 //
       
  2911 void CCmPluginPacketData::ResetBearerRecords()
       
  2912     {
       
  2913     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_RESETBEARERRECORDS_ENTRY );
       
  2914 
       
  2915     delete iPacketDataQoSRecord;
       
  2916     iPacketDataQoSRecord = NULL;
       
  2917 
       
  2918     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_RESETBEARERRECORDS_EXIT );
       
  2919     }
       
  2920 
       
  2921 // ---------------------------------------------------------------------------
       
  2922 // CCmPluginPacketData::DeleteBearerRecordsL
       
  2923 // ---------------------------------------------------------------------------
       
  2924 //
       
  2925 void CCmPluginPacketData::DeleteBearerRecordsL()
       
  2926     {
       
  2927     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_DELETEBEARERRECORDSL_ENTRY );
       
  2928 
       
  2929     if ( !TPtrC(iPacketDataQoSRecord->iRecordName).CompareF( KDefaultQosDataRecordName ) ||
       
  2930             !TPtrC(iPacketDataQoSRecord->iRecordName).CompareF( KDefaultQosDataRecordNamewithSpace ) )
       
  2931         {
       
  2932         OstTraceFunctionExit0( CCMPLUGINPACKETDATA_DELETEBEARERRECORDSL_EXIT );
       
  2933         return;
       
  2934         }
       
  2935 
       
  2936     iPacketDataQoSRecord->DeleteL( iSession );
       
  2937     iPacketDataQoSRecord = NULL;
       
  2938 
       
  2939     OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_DELETEBEARERRECORDSL_EXIT );
       
  2940     }
       
  2941 
       
  2942 // ---------------------------------------------------------------------------
       
  2943 // CCmPluginPacketData::CopyBearerRecordsL
       
  2944 // ---------------------------------------------------------------------------
       
  2945 //
       
  2946 void CCmPluginPacketData::CopyBearerRecordsL( CCmPluginBaseEng* aCopyInstance )
       
  2947     {
       
  2948     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_COPYBEARERRECORDSL_ENTRY );
       
  2949 
       
  2950     CCmPluginPacketData* plugin = static_cast<CCmPluginPacketData*>( aCopyInstance );
       
  2951 
       
  2952     plugin->iPacketDataQoSRecord =
       
  2953         static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
       
  2954                 CCDRecordBase::CreateCopyRecordL( *iPacketDataQoSRecord ) );
       
  2955 
       
  2956     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_COPYBEARERRECORDSL_EXIT );
       
  2957     }
       
  2958 
       
  2959 // ---------------------------------------------------------------------------
       
  2960 // CCmPluginPacketData::GetBearerTableIdsToBeObserved
       
  2961 // ---------------------------------------------------------------------------
       
  2962 //
       
  2963 void CCmPluginPacketData::GetBearerTableIdsToBeObservedL(
       
  2964         RArray<TUint32>& aTableIdArray ) const
       
  2965     {
       
  2966     OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERTABLEIDSTOBEOBSERVEDL_ENTRY );
       
  2967 
       
  2968     aTableIdArray.AppendL( KCDTIdOutgoingGprsRecord );
       
  2969     aTableIdArray.AppendL( KCDTIdUmtsR99QoSAndOnTableRecord );
       
  2970 
       
  2971     OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERTABLEIDSTOBEOBSERVEDL_EXIT );
       
  2972     }
       
  2973 
       
  2974 // End of file