diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_scan_list_iterator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_scan_list_iterator.h Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,264 @@ +/* +* 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: Class for different iterators for the scan list +* +*/ + + +#ifndef CORE_SCAN_LIST_ITERATOR_H +#define CORE_SCAN_LIST_ITERATOR_H + +#include "abs_core_scan_list_iterator.h" +#include "core_ap_data.h" + +class core_scan_list_c; + +/** + * This class iterates the scan list by not tagged items. + */ +NONSHARABLE_CLASS( core_scan_list_iterator_by_tag_c ) : public abs_core_scan_list_iterator_c + { + +public: + + /** + * Constructor + * + * @since S60 v3.1 + * @param scan_list Reference to the scan list instance. + * @param tag The suitable entiries must not contain this tag. + */ + core_scan_list_iterator_by_tag_c( + core_scan_list_c& scan_list, + u8_t tag ); + + /** + * Destructor. + */ + virtual ~core_scan_list_iterator_by_tag_c(); + + /** + * Return the first entry in the list that matches the iterator type. + * + * @since S60 v3.1 + * @return NULL if the list empty, pointer to the first entry otherwise. + * @note This method will reset the internal iterator. + */ + virtual core_ap_data_c* first(); + + /** + * Return the next entry in the list. + * + * @since S60 v3.1 + * @return NULL if the current entry is the last one, + * pointer to the next entry otherwise. + */ + virtual core_ap_data_c* next(); + + /** + * Return the current entry in the list. + * + * @since S60 v3.1 + * @return pointer to the current entry. + */ + virtual core_ap_data_c* current(); + +private: // data + + /** + * Handle to the scan list instance. + */ + core_scan_list_c& scan_list_m; + + /** + * The suitable entries must not contain this tag. + */ + u8_t tag_m; + + }; + +/** + * This class iterates the scan list by age. + */ +NONSHARABLE_CLASS( core_scan_list_iterator_by_age_c ) : public abs_core_scan_list_iterator_c + { + +public: + + /** + * Constructor + * + * @since S60 v3.1 + * @param scan_list Reference to the scan list instance. + * @param maximum_age The maximum age of suitable entries in seconds. + */ + core_scan_list_iterator_by_age_c( + core_scan_list_c& scan_list, + u32_t maximum_age ); + + /** + * Destructor. + */ + virtual ~core_scan_list_iterator_by_age_c(); + + /** + * Return the first entry in the list that matches the iterator type. + * + * @since S60 v3.1 + * @return NULL if the list empty, pointer to the first entry otherwise. + * @note This method will reset the internal iterator. + */ + virtual core_ap_data_c* first(); + + /** + * Return the next entry in the list. + * + * @since S60 v3.1 + * @return NULL if the current entry is the last one, + * pointer to the next entry otherwise. + */ + virtual core_ap_data_c* next(); + + /** + * Return the current entry in the list. + * + * @since S60 v3.1 + * @return pointer to the current entry. + */ + virtual core_ap_data_c* current(); + +private: // data + + /** + * Handle to the scan list instance. + */ + core_scan_list_c& scan_list_m; + + /** + * The maximum age of suitable entries in seconds. + */ + u32_t maximum_age_m; + + }; + +/** + * This class iterates the scan list by not tagged items and matching SSID. + */ +NONSHARABLE_CLASS( core_scan_list_iterator_by_tag_and_ssid_c ) : public core_scan_list_iterator_by_tag_c + { + +public: + + /** + * Constructor + * + * @since S60 v3.1 + * @param scan_list Reference to the scan list instance. + * @param tag The suitable entiries must not contain this tag. + * @param ssid SSID to match against entries. + */ + core_scan_list_iterator_by_tag_and_ssid_c( + core_scan_list_c& scan_list, + u8_t tag, + const core_ssid_s& ssid ); + + /** + * Destructor. + */ + virtual ~core_scan_list_iterator_by_tag_and_ssid_c(); + + /** + * Return the first entry in the list that matches the iterator type. + * + * @since S60 v3.1 + * @return NULL if the list empty, pointer to the first entry otherwise. + * @note This method will reset the internal iterator. + */ + virtual core_ap_data_c* first(); + + /** + * Return the next entry in the list. + * + * @since S60 v3.1 + * @return NULL if the current entry is the last one, + * pointer to the next entry otherwise. + */ + virtual core_ap_data_c* next(); + +private: // data + + /** + * SSID to match against entries. + */ + core_ssid_s ssid_m; + + }; + +/** + * This class iterates the scan list by not tagged items and matching SSID + * and BSSID. + */ +NONSHARABLE_CLASS( core_scan_list_iterator_by_tag_and_ssid_and_bssid_c ) : public core_scan_list_iterator_by_tag_and_ssid_c + { + +public: + + /** + * Constructor + * + * @since S60 v3.1 + * @param scan_list Reference to the scan list instance. + * @param tag The suitable entiries must not contain this tag. + * @param ssid SSID to match against entries. + * @param bssid BSSID to match against entries. + */ + core_scan_list_iterator_by_tag_and_ssid_and_bssid_c( + core_scan_list_c& scan_list, + u8_t tag, + const core_ssid_s& ssid, + const core_mac_address_s& bssid ); + + /** + * Destructor. + */ + virtual ~core_scan_list_iterator_by_tag_and_ssid_and_bssid_c(); + + /** + * Return the first entry in the list that matches the iterator type. + * + * @since S60 v3.1 + * @return NULL if the list empty, pointer to the first entry otherwise. + * @note This method will reset the internal iterator. + */ + virtual core_ap_data_c* first(); + + /** + * Return the next entry in the list. + * + * @since S60 v3.1 + * @return NULL if the current entry is the last one, + * pointer to the next entry otherwise. + */ + virtual core_ap_data_c* next(); + +private: // data + + /** + * BSSID to match against entries. + */ + core_mac_address_s bssid_m; + + }; + +#endif // CORE_SCAN_LIST_ITERATOR_H