diff -r 1c425781161e -r 3d23268b50f6 wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/src/wlanscanresultcache.cpp --- a/wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/src/wlanscanresultcache.cpp Tue Jul 06 16:24:00 2010 +0300 +++ b/wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/src/wlanscanresultcache.cpp Wed Aug 18 11:35:02 2010 +0300 @@ -15,6 +15,9 @@ * */ +/* +* %version: 13 % +*/ #include "wlanscanresultcache.h" #include "am_debug.h" @@ -119,7 +122,7 @@ // ----------------------------------------------------------------------------- // void CWlanScanResultCache::UpdateAvailableNetworksList( - core_type_list_c& aIapIdList, + core_type_list_c& aIapAvailabilityList, RArray& aNetworkList, TBool& aNewIapsAvailable, TBool& aOldIapsLost ) @@ -127,7 +130,7 @@ DEBUG( "CWlanScanResultCache::UpdateAvailableNetworksList()" ); DEBUG1( "CWlanScanResultCache::UpdateAvailableNetworksList() - %u IAP(s) available", - aIapIdList.count() ); + aIapAvailabilityList.count() ); DEBUG1( "CWlanScanResultCache::UpdateAvailableNetworksList() - %u IAP(s) previously available", iAvailableIapList.Count() ); DEBUG1( "CWlanScanResultCache::UpdateAvailableNetworksList() - %u networks(s) available", @@ -140,26 +143,27 @@ const TInt oldNetworkCount( iAvailableNetworkList.Count() ); aNewIapsAvailable = EFalse; aOldIapsLost = EFalse; - TIdentityRelation isEqual( CWlanScanResultCache::IsNetworkEqual ); + TIdentityRelation isNetworkEqual( CWlanScanResultCache::IsNetworkEqual ); + TIdentityRelation isIapEqual( CWlanScanResultCache::IsIapEqual ); // Iterate through previously available IAPs to find lost IAPs. TInt idx( 0 ); //while( idx < oldIapCount && !aOldIapsLost ) while( idx < oldIapCount ) { - const TUint32* newId = aIapIdList.first(); + const core_iap_availability_data_s* newIap = aIapAvailabilityList.first(); - while( newId ) + while( newIap ) { - if( *newId == iAvailableIapList[idx] ) + if( newIap->id == iAvailableIapList[idx].iapId ) { break; } - newId = aIapIdList.next(); + newIap = aIapAvailabilityList.next(); } - if( !newId ) + if( !newIap ) { DEBUG1( "CWlanScanResultCache::UpdateAvailableNetworksList() - old IAP %u has been lost", iAvailableIapList[idx] ); @@ -170,18 +174,21 @@ } // Iterate through available IAPs to find new IAPs. - const TUint32* newId = aIapIdList.first(); + const core_iap_availability_data_s* newIap = aIapAvailabilityList.first(); //while( newId && !aNewIapsAvailable ) - while( newId ) + while( newIap ) { - if ( iAvailableIapList.Find( *newId ) == KErrNotFound ) + TWlmAvailabilityData tmp; + tmp.iapId = newIap->id; + tmp.rcpi = newIap->rcpi; + if ( iAvailableIapList.Find( tmp, isIapEqual ) == KErrNotFound ) { DEBUG1( "CWlanScanResultCache::UpdateAvailableNetworksList() - new IAP %u has been detected", - *newId ); + newIap->id ); aNewIapsAvailable = ETrue; } - - newId = aIapIdList.next(); + + newIap = aIapAvailabilityList.next(); } // Iterate through previously available networks to find lost networks. @@ -189,7 +196,7 @@ //while ( idx < oldNetworkCount && !aOldIapsLost ) while ( idx < oldNetworkCount ) { - if ( aNetworkList.Find( iAvailableNetworkList[idx], isEqual ) == KErrNotFound ) + if ( aNetworkList.Find( iAvailableNetworkList[idx], isNetworkEqual ) == KErrNotFound ) { DEBUG1S( "CWlanScanResultCache::UpdateAvailableNetworksList() - old network has been lost, SSID ", iAvailableNetworkList[idx].ssid.Length(), iAvailableNetworkList[idx].ssid.Ptr() ); @@ -203,7 +210,7 @@ //while( idx < newNetworkCount && !aNewIapsAvailable ) while( idx < newNetworkCount ) { - if ( iAvailableNetworkList.Find( aNetworkList[idx], isEqual ) == KErrNotFound ) + if ( iAvailableNetworkList.Find( aNetworkList[idx], isNetworkEqual ) == KErrNotFound ) { DEBUG1S( "CWlanScanResultCache::UpdateAvailableNetworksList() - new network has been detected, SSID ", aNetworkList[idx].ssid.Length(), aNetworkList[idx].ssid.Ptr() ); @@ -217,11 +224,14 @@ iAvailableNetworkList.Reset(); iIapListTimeStamp.HomeTime(); - newId = aIapIdList.first(); - while( newId ) + newIap = aIapAvailabilityList.first(); + while( newIap ) { - iAvailableIapList.Append( *newId ); - newId = aIapIdList.next(); + TWlmAvailabilityData tmp; + tmp.iapId = newIap->id; + tmp.rcpi = newIap->rcpi; + iAvailableIapList.Append( tmp ); + newIap = aIapAvailabilityList.next(); } idx = 0; @@ -236,7 +246,7 @@ // CWlanScanResultCache::AvailableIaps // ----------------------------------------------------------------------------- // -RArray* CWlanScanResultCache::AvailableIaps( +RArray* CWlanScanResultCache::AvailableIaps( RArray& aIapList, TUint aCacheLifetime ) { @@ -392,6 +402,22 @@ } // ----------------------------------------------------------------------------- +// CWlanScanResultCache::IsIapEqual +// ----------------------------------------------------------------------------- +// +TBool CWlanScanResultCache::IsIapEqual( + const TWlmAvailabilityData& aFirst, + const TWlmAvailabilityData& aSecond ) + { + if ( aFirst.iapId != aSecond.iapId ) + { + return EFalse; + } + + return ETrue; + } + +// ----------------------------------------------------------------------------- // CWlanScanResultCache::IsIapListEqual // ----------------------------------------------------------------------------- //