--- a/wlanutilities/wlansniffer/wlaninfosorting/src/wsfwlaninfoarrayvisitor.cpp Thu Aug 19 10:59:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-/*
-* Copyright (c) 2007-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: Implementation of CWsfWlanInfoArrayVisitor
-*
-*/
-
-
-
-// EXTERNAL INCLUDES
-#include <badesca.h>
-#include <e32base.h>
-#include <eikenv.h>
-#include <bautils.h>
-#include <data_caging_path_literals.hrh>
-
-// CLASS HEADER
-#include "wsfwlaninfoarrayvisitor.h"
-
-//INTERNAL INCLUDES
-#include "wsfwlaninfosortingbrand.h"
-#include "wsfwlaninfosortingdefault.h"
-#include "wsfwlaninfosortingblacklist.h"
-#include "wsfwlaninfoarray.h"
-#include "wsfwlaninfosortingdbchangenotifier.h"
-
-
-/**
-* Blacklist database identifier
-*/
-_LIT( KBlacklistDbFormat, "SECURE[2000cf30]" );
-
-/**
-* Blacklist database file name
-*/
-_LIT( KBlacklistDbName, "c:wsfblacklist.db" );
-
-/**
-* ROM folder
-*/
-_LIT( KDriveZ, "z:" );
-
-/**
-* Resource file name
-*/
-_LIT( KResourceFileName, "wsfwlaninfosorting.rsc" );
-
-
-#ifdef _DEBUG
- _LIT( KCWsfWlanInfoArrayVisitor, "arrayvisitor" );
- #define __ASSERTD( cond ) __ASSERT_DEBUG( (cond), User::Panic( KCWsfWlanInfoArrayVisitor, __LINE__) )
-#else
- #define __ASSERTD( cond )
-#endif //_DEBUG
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::NewLC
-// ----------------------------------------------------------------------------
-//
-EXPORT_C CWsfWlanInfoArrayVisitor* CWsfWlanInfoArrayVisitor::NewLC(
- const TBool aReadOnly )
- {
- CWsfWlanInfoArrayVisitor* thisPtr = new (ELeave) CWsfWlanInfoArrayVisitor(
- aReadOnly );
- CleanupStack::PushL( thisPtr );
- thisPtr->ConstructL();
- return thisPtr;
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::NewL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C CWsfWlanInfoArrayVisitor* CWsfWlanInfoArrayVisitor::NewL(
- const TBool aReadOnly )
- {
- CWsfWlanInfoArrayVisitor* thisPtr = NewLC( aReadOnly );
- CleanupStack::Pop();
- return thisPtr;
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::~CWsfWlanInfoArrayVisitor
-// ----------------------------------------------------------------------------
-//
-EXPORT_C CWsfWlanInfoArrayVisitor::~CWsfWlanInfoArrayVisitor()
- {
- delete iDbChangeNotifier;
- delete iBlackListSorting;
- delete iBrandSorting;
- delete iDefaultSorting;
-
- iFilterDb.Close();
-
-
- iDbms.Close();
- iFileServer.Close();
-
- // let the resourcefile go..
- if ( iResourceFileOffset != -1 )
- {
- iCoeEnv.DeleteResourceFile( iResourceFileOffset );
- }
-
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::CWsfWlanInfoArrayVisitor
-// ----------------------------------------------------------------------------
-//
-CWsfWlanInfoArrayVisitor::CWsfWlanInfoArrayVisitor( const TBool aReadOnly ):
- TKeyArrayFix( 0, ECmpNormal ),
- iCoeEnv( *CEikonEnv::Static() ),
- iResourceFileOffset( -1 ),
- iReadOnly( aReadOnly )
- {
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoArrayVisitor::ConstructL()
- {
- TFileName resourceFileName;
-
- resourceFileName.Append( KDriveZ );
- resourceFileName.Append( KDC_RESOURCE_FILES_DIR );
- resourceFileName.Append( KResourceFileName );
-
- BaflUtils::NearestLanguageFile( iCoeEnv.FsSession(), resourceFileName );
- iResourceFileOffset = iCoeEnv.AddResourceFileL( resourceFileName );
-
-
- User::LeaveIfError( iFileServer.Connect() );
- User::LeaveIfError( iDbms.Connect() );
-
- OpenDataBaseL();
-
-
- iDefaultSorting = CWsfWlanInfoSortingDefault::NewL();
- iBrandSorting = CWsfWlanInfoSortingBrand::NewL();
- iBlackListSorting = CWsfWlanInfoSortingBlackList::NewL( iFilterDb );
-
- iDbChangeNotifier = CWsfWlanInfoSortingDbChangeNotifier::NewL( iFilterDb );
- iDbChangeNotifier->AppendDbRelatedFilterL( iBlackListSorting );
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::FilterPreSortL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CWsfWlanInfoArrayVisitor::FilterPreSortL(
- CWsfWlanInfoArray* aArrayToBeFiltered )
- {
- __ASSERTD( aArrayToBeFiltered );
-
- // go through the filters
- // store the array ref
-
- TInt arrayLoopCount( aArrayToBeFiltered->Count() );
- TWsfWlanInfo* wlanInfo;
-
- for ( TInt arrayLoop( 0 ); arrayLoop < arrayLoopCount; ++arrayLoop )
- {
- wlanInfo = aArrayToBeFiltered->At( arrayLoop );
-
- // blacklist sorting must come first to be able to filter out
- // customer favourite networks, too
- if ( !iBlackListSorting->SetupOnRuleMatch( *wlanInfo ) )
- {
- iBrandSorting->SetupOnRuleMatch( *wlanInfo );
- }
- }
-
- iInfoArray = aArrayToBeFiltered;
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::FilterPostSortL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CWsfWlanInfoArrayVisitor::FilterPostSortL(
- CWsfWlanInfoArray* aArrayToBeFiltered )
- {
- __ASSERTD( aArrayToBeFiltered );
-
- // go through the filters....
-
- // we could remove the entries which are marked as blacklist entries...
- TInt arrayLoopCount( aArrayToBeFiltered->Count() );
- TWsfWlanInfo* wlanInfo;
-
- for ( TInt arrayLoop( arrayLoopCount - 1); arrayLoop >= 0; --arrayLoop )
- {
- wlanInfo = aArrayToBeFiltered->At( arrayLoop );
- if ( wlanInfo->BlackListEntry() && !wlanInfo->Connected() )
- {
- // filter out only non-connected items
- aArrayToBeFiltered->Delete( wlanInfo );
- }
- }
- // and let the iInfoArray expire..
- iInfoArray = NULL;
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::SortingKey
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TKeyArrayFix& CWsfWlanInfoArrayVisitor::SortingKey()
- {
- return *this;
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::LoadFilterDefinitionsL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CWsfWlanInfoArrayVisitor::LoadFilterDefinitionsL()
- {
- // filter by filter - call the load
- iDefaultSorting->ReadFilterDefsL();
- iBrandSorting->ReadFilterDefsL();
- iBlackListSorting->ReadFilterDefsL();
- if ( iReadOnly && !iDbChangeNotifier->IsActive() )
- {
- iDbChangeNotifier->StartDbObservation();
- }
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::AppendBrandingIconsL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CWsfWlanInfoArrayVisitor::AppendBrandingIconsL(
- CAknIconArray& aIconArray )
- {
- iBrandSorting->AppendBrandIconsL( aIconArray );
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::EditBlackListL
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CWsfWlanInfoArrayVisitor::EditBlackListL(
- CWsfWlanInfoArray& aInfoItemArray )
- {
- iBlackListSorting->EditFilterDefsL( aInfoItemArray );
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::BlackListItemCount
-// ----------------------------------------------------------------------------
-//
-EXPORT_C TInt CWsfWlanInfoArrayVisitor::BlackListItemCount() const
- {
- return iBlackListSorting->BlackListItemCount();
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::Compare
-// ----------------------------------------------------------------------------
-//
-TInt CWsfWlanInfoArrayVisitor::Compare( TInt aLeft, TInt aRight ) const
- {
- TWsfWlanInfo* left = iInfoArray->At( aLeft );
- TWsfWlanInfo* right = iInfoArray->At( aRight );
-
- __ASSERTD( left );
- __ASSERTD( right );
-
- return iDefaultSorting->Compare( *left, *right );
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoArrayVisitor::OpenDataBaseL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoArrayVisitor::OpenDataBaseL()
- {
- if ( iFilterDb.Open( iDbms, KBlacklistDbName, KBlacklistDbFormat ) !=
- KErrNone )
- {
- User::LeaveIfError( iFilterDb.Create( iDbms,
- KBlacklistDbName,
- KBlacklistDbFormat ) );
-
- // create tables in the new database
- CWsfWlanInfoSortingBlackList::NewLC( iFilterDb );
- CleanupStack::PopAndDestroy();
- }
- }
-
-