wlanutilities/wlansniffer/wlaninfosorting/src/wsfwlaninfoarrayvisitor.cpp
branchRCL_3
changeset 24 63be7eb3fc78
parent 23 b852595f5cbe
child 25 f28ada11abbf
--- 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();
-		}
-	}
-
-