--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlansniffer/wlaninfosorting/inc/wsfwlaninfosortingblacklist.h Wed Sep 01 12:20:32 2010 +0100
@@ -0,0 +1,177 @@
+/*
+* 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_WSFWLANINFOSORTINGBLACKLIST_H
+#define C_WSFWLANINFOSORTINGBLACKLIST_H
+
+
+// EXTERNAL INCLUDES
+#include <e32base.h>
+#include <d32dbms.h>
+
+// INTERNAL INCLUDES
+#include "wsfwlaninfosortingfiltervisitor.h"
+#include "wsfwlaninfo.h"
+
+
+
+// FORWARD DECLARATIONS
+class CDesC8Array;
+class CGulIcon;
+class CAknIconArray;
+
+
+
+/**
+* Blacklisted item sorting filter
+*
+* @lib wsfwlaninfosorting.lib
+* @since S60 5.0
+*/
+NONSHARABLE_CLASS( CWsfWlanInfoSortingBlackList ): public CBase,
+ public MWsfWlanInfoSortingFilterVisitor
+ {
+ public:
+ /**
+ * Factory function.
+ * @since S60 5.0
+ * @param aDatabase The database to read the blacklist from.
+ * @return Class instance.
+ */
+ static CWsfWlanInfoSortingBlackList* NewLC(
+ RDbNamedDatabase& aDatabase );
+
+ /**
+ * Factory function.
+ * @since S60 5.0
+ * @param aDatabase The database to read the blacklist from.
+ * @return Class instance.
+ */
+ static CWsfWlanInfoSortingBlackList* NewL(
+ RDbNamedDatabase& aDatabase );
+
+ ~CWsfWlanInfoSortingBlackList();
+
+
+ private:
+ /**
+ * Constructor.
+ * @since S60 5.0
+ * @param aDatabase The database to read the blacklist from.
+ */
+ CWsfWlanInfoSortingBlackList( RDbNamedDatabase& aDatabase );
+
+ void ConstructL();
+
+
+ public: // from MWsfWlanInfoSortingFilterVisitor
+
+ /**
+ * Do comparing between these two entries
+ * @since S60 5.0
+ * @param aInfoLeft Left element
+ * @param aInfoRight Right element
+ * @return Negative if aInfoLeft is smaller tha aInfoRight,
+ * zero if the entries are equal,
+ * positive if the aInfoLeft is greater than aInfoRight
+ */
+ virtual TInt Compare( const TWsfWlanInfo& aInfoLeft,
+ const TWsfWlanInfo& aInfoRight );
+
+ /**
+ * Check if the entry matches to filter rules and carry out additional
+ * operations if needed.
+ * @since S60 5.0
+ * @param aInfoLeft The element to be checked
+ * @return ETrue if the item matches the blacklist rule
+ */
+ virtual TBool SetupOnRuleMatch( TWsfWlanInfo& aInfoLeft );
+
+ /**
+ * Handle filter match
+ * @since S60 5.0
+ * @param aFilterEntry The element in question
+ */
+ virtual void MarkMatchedFilterL( TWsfWlanInfo& aFilterEntry );
+
+ /**
+ * Edit filter definitions
+ * @since S60 5.0
+ * @param aInfoArray The element in question
+ */
+ virtual void EditFilterDefsL( CWsfWlanInfoArray& aInfoArray );
+
+ /**
+ * Read the filter defintions to filter
+ * @since S60 5.0
+ */
+ virtual void ReadFilterDefsL();
+
+
+ public: // new methods
+ /**
+ * Return the number of elements in the blacklist
+ * @since S60 5.0
+ * @return The count of blacklisted SSIDs
+ */
+ TInt BlackListItemCount() const;
+
+
+ private: // new methods
+ /**
+ * Save filter definitions
+ * @since S60 5.0
+ */
+ void SaveDefsL();
+
+ /**
+ * Restore filter definitions
+ * @since S60 5.0
+ */
+ void RestoreDefsL();
+
+ /**
+ * Check if the blacklist table exists in the database
+ * @since S60 5.0
+ */
+ void CheckTableL();
+
+
+ private: //data
+
+ /**
+ * Array of blacklisted SSIDs. Owned.
+ */
+ CDesC8Array* iBlackListSsids;
+
+ /**
+ * Handle to the blacklist database. Not owned.
+ */
+ RDbNamedDatabase* iDefsDb;
+
+ /**
+ * Handle to the blacklist table
+ */
+ RDbTable iBlackListSsidTable;
+ };
+
+
+
+#endif // C_WSFWLANINFOSORTINGBLACKLIST_H
+