--- a/omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp Tue Aug 31 16:04:06 2010 +0300
+++ b/omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp Wed Sep 01 12:27:42 2010 +0100
@@ -26,9 +26,9 @@
#include <data_caging_path_literals.hrh>
#include <CWPCharacteristic.h>
-#include <cmconnectionmethoddef.h>
-#include <cmmanagerext.h>
-#include <cmpluginpacketdatadef.h>
+#include <ApDataHandler.h>
+#include <ApAccessPointItem.h>
+#include <ApUtils.h>
#include <commdb.h>
#include "WPAdapterUtil.h"
#include <wpwvadapterresource.rsg>
@@ -47,43 +47,40 @@
// CWPPecAdapter::FindGPRSL
// -----------------------------------------------------------------------------
//
-TUint32 WPIMUtil::FindGPRSL(
+CApAccessPointItem* WPIMUtil::FindGPRSL(
RPointerArray<CWPCharacteristic>& aLinks )
{
- TUint32 iapID=NULL;
- RCmManagerExt cmmanagerExt;
- cmmanagerExt.OpenL();
- CleanupClosePushL(cmmanagerExt);
- TUint32 bearer = 0;
+ CCommsDatabase* commDb = CCommsDatabase::NewL();
+ CleanupStack::PushL( commDb );
+ CApDataHandler* apHandler = CApDataHandler::NewLC( *commDb );
+
+ for( TInt i( 0 ); i < aLinks.Count(); i++ )
+ {
+ CWPCharacteristic* curr = aLinks[i];
-
- for( TInt i( 0 ); i < aLinks.Count(); i++ )
- {
- CWPCharacteristic* curr = aLinks[i];
+ TPckgBuf<TUint32> uidPckg;
+ for( TInt dataNum( 0 ); curr->Data( dataNum ).Length() == uidPckg.MaxLength(); dataNum++ )
+ {
+ uidPckg.Copy( curr->Data( dataNum ) );
- TPckgBuf<TUint32> uidPckg;
- for( TInt dataNum( 0 ); curr->Data( dataNum ).Length() == uidPckg.MaxLength(); dataNum++ )
- {
- uidPckg.Copy( curr->Data( dataNum ) );
- RCmConnectionMethodExt cm;
- cm = cmmanagerExt.ConnectionMethodL( uidPckg() );
- CleanupClosePushL( cm );
- bearer = cm.GetIntAttributeL( CMManager::ECmBearerType );
- if(bearer == KUidPacketDataBearerType)
- {
- iapID = cm.GetIntAttributeL(CMManager::ECmIapId);
- CleanupStack::PopAndDestroy(2);
- return iapID;
- }
- CleanupStack::PopAndDestroy(); // cm
- }
- }
- CleanupStack::PopAndDestroy(); //cmmanagerExt
-
+ CApAccessPointItem* item = CApAccessPointItem::NewLC();
+ // Read the access point pointed to by TO-NAPID or TO-PROXY
+ apHandler->AccessPointDataL( uidPckg(), *item );
+
+ if( item->BearerTypeL() == EApBearerTypeGPRS )
+ {
+ CleanupStack::Pop(); // item
+ CleanupStack::PopAndDestroy( 2 ); // apHandler, commDb
+ return item;
+ }
+ CleanupStack::PopAndDestroy( item );
+ }
+ }
+
// This leave is absolutely needed as it pops & destroys
// data in CleanupStack
- // User::Leave( KErrNotFound );
- return iapID;
+ User::Leave( KErrNotFound );
+ return NULL;
}
// -----------------------------------------------------------------------------