wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_tools_parser.h
changeset 0 c40eb8fe8501
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_tools_parser.h	Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:  Simple parser functions for core
+*
+*/
+
+/*
+* %version: 18 %
+*/
+
+#ifndef CORE_TOOLS_PARSER_H
+#define CORE_TOOLS_PARSER_H
+
+#include "core_types.h"
+#include "core_ap_data.h"
+#include "core_settings.h"
+#include "core_connection_data.h"
+#include "abs_core_wpx_adaptation.h"
+
+class core_frame_dot11_c;
+
+/**
+ * Class for parsing various 802.11 information elements.
+ *
+ * @since S60 v3.1
+ */
+NONSHARABLE_CLASS( core_tools_parser_c )
+    {
+
+public:
+
+    /**
+     * Check whether the given AP has compatible settings with the connection settings.
+     * 
+     * @since S60 v3.1
+     * @param wpx_adaptation WPX adaptation.
+     * @param ap_data AP data to compare.
+     * @param iap_data IAP data to compare.
+     * @param core_settings Core settings to compare.
+     * @param is_cm_active Whether WPA counter measures are active.
+     * @return core_connect_ok if AP is compatible, the failure reason otherwise.
+     */
+    static core_connect_status_e is_ap_compatible_with_iap(
+        abs_core_wpx_adaptation_c& wpx_adaptation,
+        core_ap_data_c& ap_data,
+        core_iap_data_c& iap_data,
+        core_settings_c& core_settings,
+        bool_t is_cm_active = false_t,
+        bool_t ignore_channels = false_t);
+
+    /**
+     * Check whether the given AP is suitable for roaming.
+     *
+     * @since S60 v3.2
+     * @param wpx_adaptation WPX adaptation.
+     * @param ap_data AP data to compare.
+     * @param iap_data IAP data to compare.
+     * @param core_settings Core settings to compare.
+     * @param connection_data Connection data to compare.
+     * @param min_rcpi Minimum RCPI required. RCPI_VALUE_NONE if none.
+     * @param min_medium_time Minimum amount free medium time required. MEDIUM_TIME_NOT_DEFINED if none.
+     * @param is_cm_active Whether WPA counter measures are active.
+     * @param current_bssid BSSID currently connected to. ZERO_MAC_ADDR if none.
+     * @return core_connect_ok if AP is compatible, the failure reason otherwise.
+     */
+    static core_connect_status_e is_ap_suitable(
+        abs_core_wpx_adaptation_c& wpx_adaptation,
+        core_ap_data_c& ap_data,
+        core_iap_data_c& iap_data,
+        core_settings_c& core_settings,
+        core_connection_data_c& connection_data,
+        u8_t min_rcpi,
+        const medium_time_s& min_medium_time,
+        bool_t is_cm_active,
+        const core_mac_address_s& current_bssid );
+
+    /**
+     * Get parsed access point information structure.
+     *
+     * @since S60 v3.2
+     * @param iap_data Information about the used IAP.
+     * @param ap_data AP data to parse.
+     * @return Parsed access point information structure.
+     */
+    static core_ap_information_s get_ap_info(
+        const core_iap_data_c& iap_data,
+        core_ap_data_c& ap_data );
+
+    /**
+     * Get the traffic stream parameters for the given TID.
+     * 
+     * @since S60 v3.2
+     * @param frame Frame to be parsed.
+     * @param tid TID of the traffic stream.
+     * @param tspec Parameters are stored here.
+     * @return true_t if parameters found, false_t otherwise.
+     */
+    static bool_t get_wmm_traffic_stream_params(
+        core_frame_dot11_c& frame,
+        u8_t tid,
+        core_traffic_stream_params_s& tspec );
+
+    /**
+     * Parse the basic and supported rates from the given information element.
+     * @param data Pointer to IE data.
+     * @param data_length Length of IE data.
+     * @param basic_rates Bitmask of basic rates.
+     * @param supported_rates Bitmask of supported rates.
+     * @see core_tx_rate_e for rates.
+     */
+    static void parse_rates(
+        const u8_t* data,
+        u8_t data_length,
+        u32_t& basic_rates,
+        u32_t& supported_rates );
+
+private:
+
+    /**
+     * Constructor.
+     */
+    core_tools_parser_c();
+    
+    };
+
+#endif // core_tools_parser_H