diff -r 63be7eb3fc78 -r f28ada11abbf wlanutilities/wlansniffer/wlaninfosorting/inc/wsfwlaninfoarrayvisitor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlanutilities/wlansniffer/wlaninfosorting/inc/wsfwlaninfoarrayvisitor.h Wed Sep 01 12:20:32 2010 +0100 @@ -0,0 +1,225 @@ +/* +* 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: Class header for CWsfWlanInfoArrayVisitor +* +*/ + + + +#ifndef C_WSFWLANINFOARRAYVISITOR_H +#define C_WSFWLANINFOARRAYVISITOR_H + + +// EXTERNAL INCLUDES +#include +#include + +// INTERNAL INCLUDES +#include "wsfwlaninfoarrayfiltervisitor.h" +#include "wsfwlaninfo.h" + + +// FORWARD DECLARATIONS +class CWsfWlanInfoSortingDefault; +class CWsfWlanInfoSortingBrand; +class CWsfWlanInfoSortingBlackList; +class CEikonEnv; +class CAknIconArray; +class CWsfWlanInfoSortingDbChangeNotifier; + +/** +* This class is the main entry point for wlan list sorting services +* +* @lib wsfwlaninfosorting.lib +* @since S60 5.0 +*/ +NONSHARABLE_CLASS( CWsfWlanInfoArrayVisitor ): public CBase, + public TKeyArrayFix, + public MWsfWlanInfoArrayFilterVisitor + { + public: // construction + /** + * Factory function. + * @since S60 5.0 + * @param aReadOnly If EFalse, database-dependent filters + * won't get updated + * @return Class instance + */ + IMPORT_C static CWsfWlanInfoArrayVisitor* NewLC( + const TBool aReadOnly ); + + /** + * Factory function. + * @since S60 5.0 + * @param aReadOnly If EFalse, database-dependent filters + * won't get updated + * @return Class instance + */ + IMPORT_C static CWsfWlanInfoArrayVisitor* NewL( + const TBool aReadOnly ); + + IMPORT_C ~CWsfWlanInfoArrayVisitor(); + + private: + /** + * Constructor. + * @since S60 5.0 + * @param aReadOnly If EFalse, database-dependent filters + * won't get updated + */ + CWsfWlanInfoArrayVisitor( const TBool aReadOnly ); + + void ConstructL(); + + + public: // new methods + /** + * Carries out operations before starting the actual sorting + * @since S60 5.0 + * @param aArrayToBeFiltered The array we are working on. + */ + IMPORT_C void FilterPreSortL( CWsfWlanInfoArray* aArrayToBeFiltered ); + + /** + * Carries out operations after having sorted the array + * @since S60 5.0 + * @param aArrayToBeFiltered The array we are working on. + */ + IMPORT_C void FilterPostSortL( CWsfWlanInfoArray* aArrayToBeFiltered ); + + /** + * Return the sorting key handle + * @since S60 5.0 + * @return Reference to the sorting key + */ + IMPORT_C TKeyArrayFix& SortingKey(); + + + public: // from TKeyArrayFix + /** + * Compares elements of the given indices according to the + * sorting criteria. + * @since S60 5.0 + * @param aLeft Index of left element + * @param aRight Index of right element + * @return Negative if the left element is less than the right, + * positive if the right element is less than the left, + * zero if the two elements are equal. + */ + TInt Compare( TInt aLeft, TInt aRight ) const; + + + public: // new methods + + /** + * Load definition of each filter + * @since S60 5.0 + */ + IMPORT_C void LoadFilterDefinitionsL(); + + /** + * Add the icons of the given array to the branding icon list + * @since S60 5.0 + * @param aIconArray The icons to be appended + */ + IMPORT_C void AppendBrandingIconsL( CAknIconArray& aIconArray ); + + /** + * Launches the UI to modify the SSID blacklist (filter out networks) + * @since S60 5.0 + * @param aInfoItemArray The current wlaninfo array + */ + IMPORT_C void EditBlackListL( CWsfWlanInfoArray& aInfoItemArray ); + + /** + * Returns the number of blacklisted SSIDs + * @since S60 5.0 + * @return The count of filtered SSIDs + */ + IMPORT_C TInt BlackListItemCount() const; + + + private: // new methods + + /** + * Opens the shared filter database + * @since S60 5.0 + */ + void OpenDataBaseL(); + + + private: //data + + /** + * The wlaninfo array we are currently working on. Not owned. + */ + CWsfWlanInfoArray* iInfoArray; + + /** + * Default sorting filter. Owned. + */ + CWsfWlanInfoSortingDefault* iDefaultSorting; + + /** + * Branded item sorting filter. Owned. + */ + CWsfWlanInfoSortingBrand* iBrandSorting; + + /** + * Blacklisted item sorting filter. Owned. + */ + CWsfWlanInfoSortingBlackList* iBlackListSorting; + + /** + * Notifier of database changes. Owned. + */ + CWsfWlanInfoSortingDbChangeNotifier* iDbChangeNotifier; + + /** + * Reference to the UI environment + */ + CEikonEnv& iCoeEnv; + + /** + * Resource file offset + */ + TInt iResourceFileOffset; + + /** + * Handle to the filter database + */ + RDbNamedDatabase iFilterDb; + + /** + * Handle to the DBMS + */ + RDbs iDbms; + + /** + * Handle to the FS + */ + RFs iFileServer; + + /** + * If EFalse, database-dependent filters won't get updated + */ + TBool iReadOnly; + + }; + + + + +#endif // C_WSFWLANINFOARRAYVISITOR_H +