diff -r 63be7eb3fc78 -r f28ada11abbf wlanutilities/wlansniffer/wlaninfosorting/src/wsfwlaninfosortingdefault.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlanutilities/wlansniffer/wlaninfosorting/src/wsfwlaninfosortingdefault.cpp Wed Sep 01 12:20:32 2010 +0100 @@ -0,0 +1,210 @@ +/* +* 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 CWsfWlanInfoSortingDefault +* +*/ + + + +// CLASS HEADER +#include "wsfwlaninfosortingdefault.h" + +// INTERNAL INCLUDES +#include "wsfwlaninfo.h" + + +/** +* Compare result: left-hand item goes first +*/ +static const TInt KLeftFirst = -1; + +/** +* Compare result: right-hand item goes first +*/ +static const TInt KRightFirst = 1; + + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::NewLC +// --------------------------------------------------------------------------- +// +CWsfWlanInfoSortingDefault* CWsfWlanInfoSortingDefault::NewLC() + { + CWsfWlanInfoSortingDefault* thisPtr = + new (ELeave) CWsfWlanInfoSortingDefault(); + CleanupStack::PushL( thisPtr ); + thisPtr->ConstructL(); + return thisPtr; + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::NewL +// --------------------------------------------------------------------------- +// +CWsfWlanInfoSortingDefault* CWsfWlanInfoSortingDefault::NewL() + { + CWsfWlanInfoSortingDefault* thisPtr = NewLC(); + CleanupStack::Pop( thisPtr ); + return thisPtr; + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::CWsfWlanInfoSortingDefault +// --------------------------------------------------------------------------- +// +CWsfWlanInfoSortingDefault::CWsfWlanInfoSortingDefault() + { + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::~CWsfWlanInfoSortingDefault +// --------------------------------------------------------------------------- +// +CWsfWlanInfoSortingDefault::~CWsfWlanInfoSortingDefault() + { + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::ConstructL +// --------------------------------------------------------------------------- +// +void CWsfWlanInfoSortingDefault::ConstructL() + { + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::Compare +// --------------------------------------------------------------------------- +// +TInt CWsfWlanInfoSortingDefault::Compare( const TWsfWlanInfo& aLeft, + const TWsfWlanInfo& aRight ) + { + TInt ret( 0 ); + + // connected goes first + if ( aLeft.Connected() ) + { + ret = KLeftFirst; + } + else if ( aRight.Connected() ) + { + ret = KRightFirst; + } + + // then customer favourite networks + else if ( aLeft.BrandId() ) + { + if ( aRight.BrandId() ) + { + // smaller brand id first + ret = aLeft.BrandId() - aRight.BrandId(); + } + else + { + ret = KLeftFirst; + } + } + else if ( aRight.BrandId() ) + { + ret = KRightFirst; + } + + + // then known networks + else if ( aLeft.Known() && !aRight.Known() ) + { + ret = KLeftFirst; + } + else if ( !aLeft.Known() && aRight.Known() ) + { + ret = KRightFirst; + } + + // finally SSID alphabetic order decides + else + { + if ( ( aLeft.iNetworkName.Length() ) && + ( aRight.iNetworkName.Length() ) ) + { + ret = aLeft.iNetworkName.CompareC( aRight.iNetworkName ); + } + else if ( aLeft.iNetworkName.Length() ) + { + ret = aLeft.iNetworkName.CompareC( aRight.iSsid ); + } + else if ( aRight.iNetworkName.Length() ) + { + ret = aLeft.iSsid.CompareC( aRight.iNetworkName ); + } + else + { + ret = aLeft.iSsid.CompareC( aRight.iSsid ); + } + } + + return ret; + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::SetupOnRuleMatch +// --------------------------------------------------------------------------- +// +TBool CWsfWlanInfoSortingDefault::SetupOnRuleMatch( TWsfWlanInfo& + /*aInfoLeft*/ ) + { + // as a default filter - every rules is a match + return ETrue; + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::MarkMatchedFilterL +// --------------------------------------------------------------------------- +// +void CWsfWlanInfoSortingDefault::MarkMatchedFilterL( + TWsfWlanInfo& /*aFilterEntry*/ ) + { + // we do not modify the contents in default filter... + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::EditFilterDefsL +// --------------------------------------------------------------------------- +// +void CWsfWlanInfoSortingDefault::EditFilterDefsL( + CWsfWlanInfoArray& /*aInfoArray*/) + { + // we have hardcoded rules... we don't need editui.. + } + + +// --------------------------------------------------------------------------- +// CWsfWlanInfoSortingDefault::ReadFilterDefsL +// --------------------------------------------------------------------------- +// +void CWsfWlanInfoSortingDefault::ReadFilterDefsL() + { + // we have static definitions... nothing to do... + } + + +