wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_operation_get_available_iaps.h
branchRCL_3
changeset 14 13838cf40350
parent 0 c40eb8fe8501
--- a/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_operation_get_available_iaps.h	Tue May 25 14:40:09 2010 +0300
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_operation_get_available_iaps.h	Mon Jun 21 17:43:00 2010 +0300
@@ -15,6 +15,9 @@
 *
 */
 
+/*
+* %version: 18 %
+*/
 
 #ifndef CORE_OPERATION_GET_AVAILABLE_IAPS_H
 #define CORE_OPERATION_GET_AVAILABLE_IAPS_H
@@ -43,6 +46,9 @@
 
 public:
 
+    /**
+     * The possible states of the state machine.
+     */
     enum core_state_e
         {
         core_state_init = core_base_state_next,
@@ -64,12 +70,6 @@
         core_state_MAX
         };
 
-    struct core_scan_list_entry
-        {
-        core_mac_address_s bssid;
-        core_ssid_s ssid;
-        };
-
     /**
      * Constructor.
      *
@@ -80,9 +80,9 @@
      * @param adaptation pointer to upper adaptation
      * @param is_active_scan_allowed specifies whether to use probes or just listen to beacons
      * @param iap_data_list contains list of IAP data structures
-     * @param iap_ssid_list List of possible secondary SSIDs
-     * @param list of available IAP IDs on return
-     * @param scan data of found networks on return
+     * @param iap_availability_list List of available IAPs.
+     * @param iap_ssid_list List of possible secondary SSIDs.
+     * @param scan_data scan data of found networks on return
      */
     core_operation_get_available_iaps_c(
         u32_t request_id,
@@ -91,7 +91,7 @@
         abs_core_server_callback_c* adaptation,
         bool_t is_active_scan_allowed,
         core_type_list_c<core_iap_data_s>& iap_data_list,
-        core_type_list_c<u32_t>& iap_id_list,
+        core_type_list_c<core_iap_availability_data_s>& iap_availability_list,
         core_type_list_c<core_ssid_entry_s>* iap_ssid_list,
         ScanList& scan_data );
 
@@ -147,11 +147,6 @@
 private: // functions
 
     /**
-     * Remove IAPs that are not marked hidden from the list of IAPs to search.
-     */
-    void remove_non_hidden_iaps();
-
-    /**
      * Process the scan results using the given tag.
      *
      * @param tag Tag to use for iterating through the scan results.
@@ -210,6 +205,39 @@
         const core_ssid_s& ssid,
         const ScanList& scan_data );
 
+    /**
+     * Check whether the given SSID is present in the SSID list.
+     *
+     * @param ssid SSID to match.
+     * @param ssid_list SSID list to search.
+     * @return true_t if matching SSID is found, false_t otherwise.
+     */
+    bool_t is_ssid_in_list(
+        const core_ssid_s& ssid,
+        core_type_list_c<core_ssid_s>& ssid_list ) const;
+
+    /**
+     * Check whether the given IAP is present in the IAP availability list.
+     *
+     * @param iap_id IAP ID to match.
+     * @param iap_list IAP availability list to search.
+     * @return true_t if matching IAP is found, false_t otherwise.
+     */
+    bool_t is_iap_in_availability_list(
+        u32_t iap_id,
+        core_type_list_c<core_iap_availability_data_s>& iap_list ) const;
+
+    /**
+     * Add the given IAP to the IAP availability list. If an entry already exists,
+     * only signal strength is updated if needed.
+     *
+     * @param iap_id IAP ID to add.
+     * @param iap_rcpi Signal strength of the IAP.
+     */
+    void update_iap_availability(
+        u32_t iap_id,
+        u8_t iap_rcpi );
+
 private: // data
 
     /**
@@ -223,14 +251,19 @@
     bool_t is_limiting_algorithm_used_m;    
 
     /**
-     * Original list of IAPs.
+     * Number of IAPs.
+     */
+    u32_t iap_data_count_m;
+
+    /**
+     * List of IAPs.
      */
     core_type_list_c<core_iap_data_s>& iap_data_list_m;
 
     /**
-     * List for storing IDs of available IAPs.
+     * List of available IAPs.
      */
-    core_type_list_c<u32_t>& iap_id_list_m;
+    core_type_list_c<core_iap_availability_data_s>& iap_availability_list_m;
 
     /**
      * List of possible secondary SSIDs. Not owned by this pointer.
@@ -273,9 +306,14 @@
     u8_t bss_count_m;
 
     /**
-     * SSID being direct scanned.
+     * List of SSIDs to direct scan.
      */
-    core_ssid_s direct_scanned_ssid_m;
+    core_type_list_c<core_ssid_s> direct_scan_list_m;
+    
+    /**
+     * Iterator for direct scan list. 
+     */
+    core_type_list_iterator_c<core_ssid_s> direct_scan_iter_m;
 
     /**
      * Region information that is selected based on the APs country information.