diff -r af3fb27c7511 -r 13838cf40350 wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_operation_get_available_iaps.h --- 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& iap_data_list, - core_type_list_c& iap_id_list, + core_type_list_c& iap_availability_list, core_type_list_c* 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& 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& 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& iap_data_list_m; /** - * List for storing IDs of available IAPs. + * List of available IAPs. */ - core_type_list_c& iap_id_list_m; + core_type_list_c& 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 direct_scan_list_m; + + /** + * Iterator for direct scan list. + */ + core_type_list_iterator_c direct_scan_iter_m; /** * Region information that is selected based on the APs country information.