internetradio2.0/networkcontrollersrc/irfilteredapreader.cpp
changeset 14 896e9dbc5f19
parent 12 608f67c22514
child 15 065198191975
--- a/internetradio2.0/networkcontrollersrc/irfilteredapreader.cpp	Tue Jul 06 14:07:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,361 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Used to read in only access points with the desired characteristics.
-*
-*/
-
-
-#include <commdb.h>
-#include <e32cmn.h>
-
-#include "irdebug.h"
-#include "irfilteredapreader.h"
-
-_LIT( KDynIpAddress, "0.0.0.0" );
-_LIT( KEasyWLAN, "Easy WLAN" );
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::NewL
-// ---------------------------------------------------------------------------
-//
-CIRFilteredApReader* CIRFilteredApReader::NewL( TInt aFilterFlags )
-    {
-    IRLOG_DEBUG2( "CIRFilteredApReader::NewL - Filter flags = %d", aFilterFlags );
-    CIRFilteredApReader* self = CIRFilteredApReader::NewLC( aFilterFlags );
-    CleanupStack::Pop( self );
-    IRLOG_DEBUG( "CIRFilteredApReader::NewL - Exiting." );    
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::NewLC
-// ---------------------------------------------------------------------------
-//
-CIRFilteredApReader* CIRFilteredApReader::NewLC( TInt aFilterFlags )
-    {
-    IRLOG_DEBUG2( "CIRFilteredApReader::NewLC - Filter flags = %d", aFilterFlags );
-    CIRFilteredApReader* self = new( ELeave ) CIRFilteredApReader( aFilterFlags );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    IRLOG_DEBUG( "CIRFilteredApReader::NewL - Exiting." );    
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::FirstRecordL
-// ---------------------------------------------------------------------------
-//
-CCDIAPRecord* CIRFilteredApReader::FirstRecordL()
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::FirstRecordL - Entering" );    
-    CCDIAPRecord* record( NULL );
-    iWapTableIndex = 0;
-    if ( iWapTable->iRecords.Count() > 0 )
-        {
-        TBool loaded( EFalse );
-        TRAPD( err, loaded = LoadCurrentApDetailsL() ); // may leave because of access rights etc.
-        if ( err == KErrNone && loaded && FilterL())
-            {
-            record = static_cast<CCDIAPRecord*>( CCDRecordBase::CreateCopyRecordL( *iIapRecord ) );
-            record->SetRecordId( iIapRecord->RecordId() );
-            IRLOG_INFO2( "CIRFilteredApReader::FirstRecordL - %S accepted.", &record->iRecordName.GetL() );
-            }
-        else if ( err != KErrNone || !loaded )
-            {
-            IRLOG_ERROR3( "CIRFilteredApReader::FirstRecordL - Loading AP details failed (err=%d, loaded=%d).",
-                          err, loaded );            
-            record = NextRecordL();
-            }
-        else
-            {
-            IRLOG_INFO2( "CIRFilteredApReader::FirstRecordL - %S filtered out.", &iIapRecord->iRecordName.GetL() );
-            record = NextRecordL();            
-            }
-        }        
-    IRLOG_DEBUG( "CIRFilteredApReader::FirstRecordL - Exiting." );    
-    return record;
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::NextRecordL
-// ---------------------------------------------------------------------------
-//
-CCDIAPRecord* CIRFilteredApReader::NextRecordL()
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::NextRecordL - Entering");    
-    CCDIAPRecord* record( NULL );
-    
-    while ( !record && MoveToNextRecord() )
-        {
-        TBool loaded( EFalse );
-        TRAPD( err, loaded = LoadCurrentApDetailsL() ); // may leave because of access rights etc.
-        if ( err == KErrNone && loaded && FilterL())
-            {
-            record = static_cast<CCDIAPRecord*>( CCDRecordBase::CreateCopyRecordL( *iIapRecord ) );
-            record->SetRecordId( iIapRecord->RecordId() );            
-            IRLOG_INFO2( "CIRFilteredApReader::FirstRecordL - %S accepted.", &record->iRecordName.GetL() );            
-            }
-        else if ( err != KErrNone || !loaded )
-            {
-            IRLOG_ERROR3( "CIRFilteredApReader::NextRecordL - Loading AP details failed (err=%d, loaded=%d).",
-                          err, loaded );            
-            }
-        else
-            {
-            IRLOG_INFO2( "CIRFilteredApReader::NextRecordL - %S filtered out.", &iIapRecord->iRecordName.GetL() );
-            }
-        }
-    IRLOG_DEBUG( "CIRFilteredApReader::NextRecordL - Exiting." );    
-    return record;
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::CIRFilteredApReader
-// ---------------------------------------------------------------------------
-//
-CIRFilteredApReader::CIRFilteredApReader( TInt aFilterFlags ) 
-    : iFilterFlags( aFilterFlags )  
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::CIRFilteredApReader" );                
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CIRFilteredApReader::ConstructL()
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::ConstructL - Entering" );                
-    iDbSession = CMDBSession::NewL(CMDBSession::LatestVersion());
-    
-    iWapTable = new (ELeave) CMDBRecordSet<CCDWAPAccessPointRecord>( KCDTIdWAPAccessPointRecord );
-    iWapTable->LoadL( *iDbSession );
-    IRLOG_DEBUG( "CIRFilteredApReader::ConstructL - Exiting." );    
-    }
-
-
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::~CIRFilteredApReader
-// ---------------------------------------------------------------------------
-//
-CIRFilteredApReader::~CIRFilteredApReader()
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::~CIRFilteredApReader - Entering" );    
-    delete iDbSession;
-    delete iWapTable;
-    delete iWapIpBearerRecord;
-    delete iIapRecord;
-    IRLOG_DEBUG( "CIRFilteredApReader::~CIRFilteredApReader - Exiting." );    
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::CurrentRecordL
-// ---------------------------------------------------------------------------
-//
-CCDWAPAccessPointRecord* CIRFilteredApReader::CurrentRecordL() const
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::CurrentRecordL - Entering" );    
-    if ( iWapTableIndex >= iWapTable->iRecords.Count() )
-        {
-        IRLOG_FATAL( "CIRFilteredApReader::CurrentRecordL - WAP table overflow!" );
-        User::Leave( KErrCorrupt );
-        }
-    IRLOG_DEBUG( "CIRFilteredApReader::CurrentRecordL - Exiting" );    
-    return static_cast<CCDWAPAccessPointRecord*>( iWapTable->iRecords[iWapTableIndex] );
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::MoveToNextRecord
-// ---------------------------------------------------------------------------
-//
-TBool CIRFilteredApReader::MoveToNextRecord()
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::MoveToNextRecord - Entering" );    
-    TBool retMe(EFalse);
-    if ( ++iWapTableIndex < iWapTable->iRecords.Count() )
-        {
-        IRLOG_INFO2( "CIRFilteredApReader::MoveToNextRecord - Current record %d", iWapTableIndex );        
-        retMe = ETrue;
-        }
-    else
-        {
-        IRLOG_INFO( "CIRFilteredApReader::MoveToNextRecord - No more records" );        
-        }
-    IRLOG_DEBUG( "CIRFilteredApReader::MoveToNextRecord - Exiting" );    
-    return retMe;
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::LoadCurrentApDetailsL
-// ---------------------------------------------------------------------------
-//
-TBool CIRFilteredApReader::LoadCurrentApDetailsL()
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::LoadCurrentApDetailsL - Entering" );    
-    delete iWapIpBearerRecord;
-    iWapIpBearerRecord = NULL;
-    
-    delete iIapRecord;
-    iIapRecord = NULL;
-    
-    // Load record from WAPIPBearer
-    iWapIpBearerRecord = static_cast<CCDWAPIPBearerRecord*>( 
-    		CCDRecordBase::RecordFactoryL( KCDTIdWAPIPBearerRecord ) );
-
-    iWapIpBearerRecord->iWAPAccessPointId.SetL( CurrentRecordL()->RecordId() );
-    TBool res = iWapIpBearerRecord->FindL( *iDbSession );
-    
-    if ( res )
-        {
-        iIapRecord = static_cast<CCDIAPRecord*>(
-        		 CCDRecordBase::RecordFactoryL( KCDTIdIAPRecord ) );
-        iIapRecord->SetRecordId( iWapIpBearerRecord->iWAPIAP );
-        iIapRecord->LoadL( *iDbSession );
-        }
-    IRLOG_DEBUG2( "CIRFilteredApReader::LoadCurrentApDetailsL - returning %d", res );    
-    return res;
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::FilterL
-// ---------------------------------------------------------------------------
-//
-TBool CIRFilteredApReader::FilterL() const
-    {
-    IRLOG_DEBUG2( "CIRFilteredApReader::FilterL - Service type %S", &iIapRecord->iServiceType.GetL() );    
-    TBool retMe( ETrue );
-    
-    // The WAP check needs to be done only for CSD, GPRS, CDMA and LAN (because of Easy WLAN)
-    // APs. 
-    if ( iIapRecord->iServiceType.GetL().Compare( TPtrC( KCDTypeNameDialOutISP ) ) == 0 ||
-         iIapRecord->iServiceType.GetL().Compare( TPtrC( KCDTypeNameOutgoingWCDMA ) ) == 0 ||
-//         iIapRecord->iServiceType.GetL().Compare( 
-//         					TPtrC( KCDTypeNameCDMA2000PacketService ) ) == 0 ||
-         iIapRecord->iServiceType.GetL().Compare( TPtrC( KCDTypeNameLANService) ) == 0 )
-        {
-        if ( iFilterFlags & KIRFilterWAPMandatory )
-            {
-            retMe = FilterWAPMandatoryL();
-            }
-        if ( retMe && iFilterFlags & KIRFilterWAPOnly )
-            {
-            retMe = FilterWAPOnlyL();
-            }
-        if ( retMe && iFilterFlags & KIRFilterEasyWLAN )
-            {
-            retMe = FilterEasyWlanL();            
-            }
-        }
-    IRLOG_DEBUG2( "CIRFilteredApReader::FilterL - Returning %d", retMe );    
-    return retMe;
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::FilterWAPMandatoryL
-// ---------------------------------------------------------------------------
-//
-TBool CIRFilteredApReader::FilterWAPMandatoryL() const
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::FilterWAPMandatoryL - Entering" );    
-    TBool retMe( EFalse );
-    
-    // First check the WAP_GATEWAY_ADDRESS of WAP_IP_BEARER table.
-    if ( iWapIpBearerRecord->iWAPGatewayAddress.IsNull() || 
-         iWapIpBearerRecord->iWAPGatewayAddress.GetL().Length() == 0 ||
-         iWapIpBearerRecord->iWAPGatewayAddress.GetL().Compare( KDynIpAddress ) == 0 )
-        {
-        retMe = ETrue;
-        }
-    IRLOG_INFO3( "CIRFilteredApReader::FilterWAPMandatoryL - Returning %d for %S", retMe, &iIapRecord->iRecordName.GetL() );
-    return retMe;
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::FilterWAPOnlyL
-// ---------------------------------------------------------------------------
-//
-TBool CIRFilteredApReader::FilterWAPOnlyL() const
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::FilterWAPOnlyL - Entering" );    
-    TBool retMe( EFalse );
-
-    IRLOG_DEBUG2( "CIRFilteredApReader::FilterWAPOnlyL - Service type %S", &iIapRecord->iServiceType.GetL() );
-    if ( iIapRecord->iServiceType.GetL().Compare( TPtrC( KCDTypeNameDialOutISP ) ) == 0 )
-        {
-        CCDDialOutISPRecord* dialOutRecord = static_cast<CCDDialOutISPRecord*>( 
-        			CCDRecordBase::RecordFactoryL( KCDTIdDialOutISPRecord ) );
-        CleanupStack::PushL( dialOutRecord );
-        dialOutRecord->SetRecordId( iIapRecord->iService );
-        dialOutRecord->LoadL( *iDbSession );
-        if ( dialOutRecord->iType != EIspTypeWAPOnly )
-            {
-            retMe = ETrue;
-            }
-        CleanupStack::PopAndDestroy( dialOutRecord );
-        }
-    else if ( iIapRecord->iServiceType.GetL().Compare( TPtrC( KCDTypeNameOutgoingWCDMA ) ) == 0 )
-        {
-        CCDWCDMAPacketServiceRecord* gprsRecord = static_cast<CCDWCDMAPacketServiceRecord*>( 
-        		CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
-        CleanupStack::PushL( gprsRecord );
-        gprsRecord->SetRecordId( iIapRecord->iService );
-        gprsRecord->LoadL( *iDbSession );
-        if ( gprsRecord->iGPRSAPType != EIspTypeWAPOnly )
-            {
-            retMe = ETrue;
-            }
-        CleanupStack::PopAndDestroy( gprsRecord );
-        }
-//    else if ( iIapRecord->iServiceType.GetL().Compare( 
-//    					TPtrC( KCDTypeNameCDMA2000PacketService ) ) == 0 )
-//        {
-//        CCDCDMA2000PacketServiceRecord* cdmaRecord = static_cast<CCDCDMA2000PacketServiceRecord*>(
-//        	 CCDRecordBase::RecordFactoryL( KCDTIdCDMA2000PacketServiceRecord ) );
-//        CleanupStack::PushL( cdmaRecord );
-//        cdmaRecord->SetRecordId( iIapRecord->iService );
-//        cdmaRecord->LoadL( *iDbSession );
-//        if ( cdmaRecord->iApType != EIspTypeWAPOnly )
-//            {
-//            retMe = ETrue;
-//            }
-//        CleanupStack::PopAndDestroy( cdmaRecord );
-//        }
-    else
-        {
-        retMe = ETrue;
-        }
-    
-    IRLOG_INFO3( "CIRFilteredApReader::FilterWAPOnlyL - Returning %d for %S", retMe, &iIapRecord->iRecordName.GetL() );    
-    return retMe; 
-    }
-
-// ---------------------------------------------------------------------------
-// CIRFilteredApReader::FilterEasyWlanL
-// ---------------------------------------------------------------------------
-//
-TBool CIRFilteredApReader::FilterEasyWlanL() const
-    {
-    IRLOG_DEBUG( "CIRFilteredApReader::FilterEasyWlanL - Entering" );    
-    TBool retMe( EFalse );
-    if ( iIapRecord->iRecordName.GetL().Compare( KEasyWLAN ) != 0 )
-        {
-        retMe = ETrue;
-        }
-    IRLOG_INFO3( "CIRFilteredApReader::FilterEasyWlanL - Returning %d for %S", retMe, &iIapRecord->iRecordName.GetL() );    
-    return retMe;
-    }
-