omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp
branchRCL_3
changeset 25 b183ec05bd8c
parent 0 b497e44ab2fc
child 26 19bba8228ff0
--- a/omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp	Thu Aug 19 10:44:50 2010 +0300
+++ b/omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp	Tue Aug 31 16:04:06 2010 +0300
@@ -26,9 +26,9 @@
 #include <data_caging_path_literals.hrh>
 
 #include <CWPCharacteristic.h>
-#include <ApDataHandler.h>
-#include <ApAccessPointItem.h>
-#include <ApUtils.h>
+#include <cmconnectionmethoddef.h>
+#include <cmmanagerext.h>
+#include <cmpluginpacketdatadef.h>
 #include <commdb.h>
 #include "WPAdapterUtil.h"
 #include <wpwvadapterresource.rsg>
@@ -47,40 +47,43 @@
 // CWPPecAdapter::FindGPRSL
 // -----------------------------------------------------------------------------
 //
-CApAccessPointItem* WPIMUtil::FindGPRSL( 
+TUint32 WPIMUtil::FindGPRSL( 
                                       RPointerArray<CWPCharacteristic>& aLinks )
 	{
-	CCommsDatabase* commDb = CCommsDatabase::NewL();
-	CleanupStack::PushL( commDb );
-	CApDataHandler* apHandler = CApDataHandler::NewLC( *commDb );
+	TUint32 iapID=NULL;
+	RCmManagerExt  cmmanagerExt;
+	cmmanagerExt.OpenL();
+	CleanupClosePushL(cmmanagerExt);
+	TUint32 bearer = 0;
+
 	
-    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 ) );
+	for( TInt i( 0 ); i < aLinks.Count(); i++ )
+	   {
+	   CWPCharacteristic* curr = aLinks[i];
 
-			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 );
-            }
-        }
-
+	   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
+	
 	// This leave is absolutely needed as it pops & destroys 
 	// data in CleanupStack
-    User::Leave( KErrNotFound );
-    return NULL;
+  //  User::Leave( KErrNotFound );
+    return iapID;
 	}
 
 // -----------------------------------------------------------------------------