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 May 25 14:40:09 2010 +0300
+++ b/wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/src/wlanscanresultcache.cpp Mon Jun 21 17:43:00 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<u32_t>& aIapIdList,
+ core_type_list_c<core_iap_availability_data_s>& aIapAvailabilityList,
RArray<TWlanAvailableNetwork>& 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<TWlanAvailableNetwork> isEqual( CWlanScanResultCache::IsNetworkEqual );
+ TIdentityRelation<TWlanAvailableNetwork> isNetworkEqual( CWlanScanResultCache::IsNetworkEqual );
+ TIdentityRelation<TWlmAvailabilityData> 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<TUint>* CWlanScanResultCache::AvailableIaps(
+RArray<TWlmAvailabilityData>* CWlanScanResultCache::AvailableIaps(
RArray<TWlanLimitedIapData>& 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
// -----------------------------------------------------------------------------
//