--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspotfw/hsserver/inc/hssscaninfo.h Thu Dec 17 09:20:28 2009 +0200
@@ -0,0 +1,237 @@
+/*
+* Copyright (c) 2002-2005 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 to dig information from scan results.
+*
+*/
+
+
+
+#ifndef HSSSCANINFO_H
+#define HSSSCANINFO_H
+
+
+// INCLUDES
+#include "hssscanlistiterator.h"
+
+// CONSTANTS
+const TUint8 BSSID_LENGTH = 6;
+const TUint16 SCAN_CAPABILITY_BIT_MASK_ESS = 0x0001;
+const TUint16 SCAN_CAPABILITY_BIT_MASK_PRIVACY = 0x0010;
+const TUint8 SCAN_IE_OUI_LENGTH = 3;
+const TUint8 TIMESTAMP_LENGTH = 8;
+
+// LOCAL DATATYPES
+
+typedef enum _HssScanError
+{
+ HssScanError_Ok,
+ HssScanError_IeNotFound
+
+} HssScanError;
+
+typedef enum _HssSecurityMode
+ {
+ HssSecurityModeOpen,
+ HssSecurityModeWep,
+ HssSecurityMode802_1x,
+ HssSecurityModeWpaEap,
+ HssSecurityModeWpaPsk,
+ HssSecurityModeWpa2Eap,
+ HssSecurityModeWpa2Psk
+ } HssSecurityMode;
+
+typedef enum _HssOperatingMode
+ {
+ HssOperatingModeInfra,
+ HssOperatingModeAdhoc
+ } HssOperatingMode;
+
+typedef TUint8 HssIeOui[SCAN_IE_OUI_LENGTH];
+
+// LOCAL CONSTANTS
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+* Wrapper class to parse data fields from scan info.
+*/
+class HssScanInfo : public HssScanListIterator
+{
+public: // Methods
+
+ // Constructors and destructor
+
+ /**
+ * C++ default constructor.
+ */
+ HssScanInfo( const HssScanList& scan_list);
+
+ // New methods
+
+ /**
+ * Return the signal noise ratio of the received (info) packet.
+ * @return Signal noise ratio (SNR).
+ */
+ inline TUint8 SignalNoiseRatio() const;
+
+ /**
+ * Return RX level of the received (info) packet.
+ * @return RX level.
+ */
+ inline TUint8 RXLevel() const;
+
+ /**
+ * Return BSSID of the scan info.
+ * @param bssid (OUT) ID of the access point or IBSS network.
+ */
+ inline void BSSID( TUint8 bssid[BSSID_LENGTH] ) const;
+
+
+ /**
+ * Get beacon interval of the network.
+ * @return the beacon interval.
+ */
+ inline TUint16 BeaconInterval() const;
+
+ /**
+ * Get capability of the network (see IEEE 802.11 section 7.3.1.4.
+ * @return The capability information.
+ */
+ inline TUint16 Capability() const;
+
+ /**
+ * Return whether the privacy bit is enabled in AP capabilities.
+ * @return Whether the privacy is enabled. ETrue when enabled, EFalse when disabled.
+ */
+ inline TBool Privacy() const;
+
+ /**
+ * Return the operating mode of the AP.
+ * @return The operating mode of the AP.
+ */
+ inline HssOperatingMode OperatingMode() const;
+
+ /**
+ * Return the security mode of the AP.
+ * @return The security mode of the AP.
+ */
+ HssSecurityMode SecurityMode();
+
+ /**
+ * Return the timestamp field of the frame.
+ */
+ inline void Timestamp( TUint8 timestamp[TIMESTAMP_LENGTH] ) const;
+
+ /**
+ * Return requested information element.
+ * @param ie Id of the requested IE data. See 802dot11.h
+ * @param length (OUT) Length of the IE. Zero if IE not found.
+ * @param data (OUT) Pointer to the beginning of the IE data. NULL if IE not found.
+ * @return General error message.
+ */
+ HssScanError InformationElement( TUint8 ie,
+ TUint8& length,
+ const TUint8** data );
+ /**
+ * Return WPA information element.
+ * @param length (OUT) Length of the IE. Zero if IE not found.
+ * @param data (OUT) Pointer to the beginning of the IE data. NULL if IE not found.
+ * @return General error message.
+ */
+ HssScanError WpaIE( TUint8& length,
+ const TUint8** data );
+
+ /**
+ * Return the first information element.
+ * @param ie (OUT) Id of the IE. See 802dot11.h.
+ * @param length (OUT) Length of the IE. Zero if IE not found.
+ * @param data (OUT) Pointer to the beginning of the IE data. NULL if IE not found.
+ * @return General error message.
+ */
+ HssScanError FirstIE( TUint8& ie,
+ TUint8& length,
+ const TUint8** data );
+ /**
+ * Return next information element.
+ * @param ie (OUT) Id of the IE. See 802dot11.h.
+ * @param length (OUT) Length of the IE. Zero if IE not found.
+ * @param data (OUT) Pointer to the beginning of the IE data. NULL if IE not found.
+ * @return General error message.
+ */
+ HssScanError NextIE( TUint8& ie,
+ TUint8& length,
+ const TUint8** data );
+
+ /**
+ * Return requested information element data.
+ * @param ie_id (IN) Id of the requested IE data. See 802dot11.h
+ * @param ie_oui (IN) OUI of the requested IE data. See 802dot11.h
+ * @param ie_oui_type (IN) OUI Type of the requested IE data. See 802dot11.h
+ * @param length (OUT) Length of the IE. Zero if IE not found.
+ * @param data (OUT) Pointer to the beginning of the IE data. NULL if IE not found.
+ * @return General error message.
+ */
+ HssScanError InformationElement( TUint8 ie_id,
+ const HssIeOui& ie_oui,
+ TUint8 ie_oui_type,
+ TUint8& ie_length,
+ const TUint8** ie_data );
+
+ /**
+ * Return requested information element data.
+ * @param ie_id (IN) Id of the requested IE data. See 802dot11.h
+ * @param ie_oui (IN) OUI of the requested IE data. See 802dot11.h
+ * @param ie_oui_type (IN) OUI Type of the requested IE data. See 802dot11.h
+ * @param ie_oui_subtype (IN) OUI Subtype of the requested IE data. See 802dot11.h
+ * @param length (OUT) Length of the IE. Zero if IE not found.
+ * @param data (OUT) Pointer to the beginning of the IE data. NULL if IE not found.
+ * @return General error message.
+ */
+ HssScanError InformationElement( TUint8 ie_id,
+ const HssIeOui& ie_oui,
+ TUint8 ie_oui_type,
+ TUint8 ie_oui_subtype,
+ TUint8& ie_length,
+ const TUint8** ie_data );
+
+private: //Methods
+
+ // Prohibit copy constructor if not deriving from CBase.
+ HssScanInfo( const HssScanInfo& );
+ // Prohibit assigment operator if not deriving from CBase.
+ HssScanInfo& operator= ( const HssScanInfo& );
+
+ /**
+ * Return current information element.
+ * @param ie (OUT) Id of the IE. See 802dot11.h.
+ * @param length (OUT) Length of the IE. Zero if IE not found.
+ * @param data (OUT) Pointer to the beginning of the IE data. NULL if IE not found.
+ * @return General error message.
+ */
+ HssScanError CurrentIE( TUint8& ie,
+ TUint8& length,
+ const TUint8** data ) const;
+
+private: // Data
+ /** Iterator for going through IEs of scan info. */
+ const TUint8* ie_iter_m;
+};
+
+#include "hssscaninfo.inl"
+
+#endif // HssSCANINFO_H
+
+// End of File