wlanutilities/wlansniffer/wlaninfo/inc/wsfwlaninfo.h
branchRCL_3
changeset 25 f28ada11abbf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlansniffer/wlaninfo/inc/wsfwlaninfo.h	Wed Sep 01 12:20:32 2010 +0100
@@ -0,0 +1,360 @@
+/*
+* Copyright (c) 2007-2007 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 TWsfWlanInfo
+*
+*/
+
+
+
+#ifndef T_WSFWLANINFO_H
+#define T_WSFWLANINFO_H
+
+//  EXTERNAL INCLUDES
+#include <e32base.h>
+#include <cmpluginwlandef.h>
+#include <wlanmgmtcommon.h>
+
+
+// ENUMS
+
+/**
+ * Signal strength categories for UI
+ */
+enum TWsfWlanSignalStrengthLevel
+    {
+    ENoSignal,
+    EPoor,
+    EAverage,
+    EExcelent
+    };
+
+
+/**
+ * Connection status
+ */
+enum TWsfWlanConnectionState
+    {
+    ENotConnected,
+    EConnecting,
+    EConnected
+    };
+    
+
+/**
+ * Signal strength category boundaries in dB (absolute value).
+ * Smaller value means better signal.
+ */    
+enum TWsfWlanSignalStrength
+    {
+    EWlanSignalStrengthMax = 60,
+    EWlanSignalStrengthGood = 74,
+    EWlanSignalStrengthLow = 87,
+    EWlanSignalStrengthMin = 100,
+    EWlanSignalUnavailable = 9999
+    };
+
+
+/**
+ * Flags for different types of networks
+ */
+enum TWsfBrandDataDefs
+    {
+    EBrandedItem = 0xFF,
+    EBlackListItem = 0x01,
+    EUserSortListItem = 0x02,
+    EFonSsid = 0x04,
+    EUsesPresharedKey = 0x08
+    };
+    
+
+/**
+ * Maximal length of IAP name that the class should be able to store
+ */    
+const TInt KWlanMaxAccessPointNameLength = 50;
+
+
+// FORWARD DECLARATIONS
+class RReadStream;
+class RWriteStream;
+
+
+//  CLASS DEFINITION
+/**
+ * Class to encapsulate network parameters
+ *
+ * TWsfWlanInfo serves for transferring the WLAN network related data
+ * between the different submodules of Wlan Sniffer.
+ *
+ * @lib wsfwlaninfo.lib
+ * @since S60 5.0
+ */
+NONSHARABLE_CLASS( TWsfWlanInfo )
+    {
+    public:     // Constructors
+
+        IMPORT_C TWsfWlanInfo();
+
+        /**
+         * Constructor.
+         *
+         * @since S60 5.0
+         * @param aSsid SSID of the WLAN network
+         * @param aStrengthLevel Signal strength in dB (absolute value)
+         * @param aSecurityMode Network security mode
+         * @param aVisibility ETrue for public networks, EFalse for hidden ones
+         * @param aNetMode Network mode (infrastructure or adhoc)
+         * @param aIapId IAP id if known, zero otherwise.
+         * @param aCoverage Number of APs with the same SSID
+         * @param aTransferRate Maximal transfer rate reported by the AP
+         */
+        IMPORT_C TWsfWlanInfo( TDesC8& aSsid,
+                        TUint16 aStrengthLevel,
+                        CMManager::TWlanSecMode aSecurityMode,
+                        TInt aVisibility,
+                        CMManager::TWlanNetMode aNetMode,
+                        TUint32 aIapId,
+                        TUint8 aCoverage,
+                        TUint32 aTransferRate );
+
+    public:     // New methods
+
+        /**
+        * Gets WLAN name (Ssid) as unicode format 
+        * @since S60 5.0
+        * @return Ssid as unicode format
+        */
+        IMPORT_C HBufC* GetSsidAsUnicodeLC();
+
+        /**
+        * Gets WLAN name (Ssid) as unicode format
+        * @since S60 5.0
+        * @return Ssid as unicode format
+        */ 
+        IMPORT_C static HBufC* GetSsidAsUnicodeLC( const TWlanSsid& aSsid );
+
+        /**
+        * Gets WLAN name (Ssid) as 8-bit format 
+        * @since S60 5.0
+        * @return Ssid as 8-bit format
+        */
+        IMPORT_C HBufC8* GetSsidAsUtf8LC();
+
+        /**
+        * Serializes data from the stream
+        * @since S60 5.0
+        * @param aStream Stream from where data is serialized
+        */
+        IMPORT_C void InternalizeL( RReadStream& aStream );
+        
+        /**
+        * Serializes data to the stream
+        * @since S60 5.0
+        * @param aStream Stream where data will be serialized
+        */
+        IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+
+        /**
+        * Get signal strength as enumeration
+        * @since S60 5.0
+        * @return Signal stregth as enumeration
+        */
+        IMPORT_C TWsfWlanSignalStrengthLevel SignalStrength(); 
+
+        /**
+        * Get signal strength as percentage
+        * @since S60 5.0
+        * @return Signal stregth as percentage
+        */
+        IMPORT_C TInt SignalStrengthPercentage();
+        
+        /**
+        * Gets WLAN IAP name as unicode format 
+        * @since S60 5.0
+        * @return Ssid as unicode format
+        */
+        IMPORT_C HBufC* GetIapNameAsUnicodeLC();
+
+        /**
+        * Gets WLAN IAP name as 8-bit format 
+        * @since S60 5.0
+        * @return Ssid as 8-bit format
+        */
+        IMPORT_C HBufC8* GetIapNameAsUtf8LC();
+
+        /**
+        * Get WLAN connection state
+        * @since S60 5.0
+        * @return ETrue if connected
+        */
+        inline TBool Connected() const;
+        
+        /**
+        * Get WLAN connection state
+        * @since S60 5.2
+        * @return TWsfWlanConnectionState
+        */
+        inline TWsfWlanConnectionState ConnectionStatus() const;
+
+        /**
+        * Get WLAN Known state
+        * @since S60 5.0
+        * @return ETrue if access point has been defined
+        */
+        inline TBool Known() const;
+
+        /**
+        * Get WLAN visibility state
+        * @since S60 5.0
+        * @return ETrue if WLAN is hidden
+        */
+        inline TBool Hidden() const;
+
+        /**
+        * Get WLAN security state
+        * @since S60 5.0
+        * @return ETrue if WLAN is secured. 
+        */
+        inline TBool Secure() const;
+
+        /**
+        * Set the brand id for entry
+        * @since S60 5.0
+        * @param aBrandId The brand id.
+        */ 
+        inline void SetBrand( const TInt8 aBrandId );
+
+        /**
+        * Get brand id
+        * @since S60 5.0
+        * @return 8-bit value representing brand id
+        */
+        inline TInt8 BrandId() const;
+
+        /**
+        * Set blacklist entry flag
+        * @since S60 5.0
+        * @param aBlackListEntry ETrue if the network is blacklisted.
+        */
+        inline void SetBlackListEntry( const TBool aBlackListEntry );
+
+        /** 
+        * Get blacklist flag
+        * @since S60 5.0
+        * @return ETrue if the entry is marked as black list entry
+        */
+        inline TBool BlackListEntry() const;
+
+        /**
+        * Get Fon entry flag
+        * @since S60 5.0
+        * @return ETrue if the network is recognised as FON.
+        */
+        inline TBool FonSsid() const;
+
+        /** 
+        * Set Fon flag
+        * @since S60 5.0
+        * @param aFonSsid ETrue if the entry is a Fon list entry
+        */
+        inline void SetFonSsid( const TBool aFonSsid );
+
+        /**
+        * Query preshared key flag in WPA and 802.1x security modes.
+        * Note that the result is undefined in case of other security modes.
+        * @since S60 5.0
+        * @return ETrue, if preshared key is used.
+        */
+        inline TBool UsesPreSharedKey() const;
+
+        /** 
+        * Set preshared key flag for WPA and 802.1x security modes.
+        * @since S60 5.0
+        * @param aUsePresharedKey ETrue if the network uses preshared key
+        */
+        inline void SetUsesPreSharedKey( const TBool aUsePresharedKey );
+        
+        /**
+        * Set the priority for entry
+        * @since S60 5.1
+        * @param aPriority The priority id.
+        */ 
+        inline void SetPriority( const TUint8 aPriority );
+
+        /**
+        * Get priority
+        * @since S60 5.1
+        * @return 8-bit value representing priority
+        */
+        inline TUint8 Priority() const;
+
+        /**
+        * Get WLAN security mode
+        * @since S60 5.2
+        * @return WLAN security mode
+        */
+        inline CMManager::TWlanSecMode SecurityMode() const;
+
+
+    public:    // Data
+
+        // Network name (unknown: SSID, known: IAP name)
+        TWlanSsid iSsid;
+
+        // Network strength
+        TUint16 iStrengthLevel;			
+
+        //Network encryption
+        CMManager::TWlanSecMode iSecurityMode;		
+
+        //Network visibility
+        TBool iVisibility;		
+
+        //Network capability
+        CMManager::TWlanNetMode iNetMode;	
+
+        //Internet Access Point Id. 0 if the IAP has not been defined. 
+        TUint32 iIapId;
+
+        // Available WLAN hotspots in this WLAN network
+        TUint8 iCoverage;
+
+        // Transferrate
+        TUint32 iTransferRate;
+
+        // Connection state
+        TWsfWlanConnectionState iConnectionState;
+
+        // filter flags
+        TUint8 iFilterFlags;
+
+        //brand id
+        TUint8 iBrandId;
+        
+        // The name of the WLAN IAP
+        TBuf8<KWlanMaxAccessPointNameLength> iNetworkName;
+        
+        //UI priority for known networks
+        TUint8 iPriority;
+        
+        //Raw SSID - not converted
+        TWlanSsid iRawSsid;
+    };
+
+
+#include "wsfwlaninfo.inl"
+
+
+#endif // T_WSFWLANINFO_H
+
+// End of file