--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/inc/core_settings.h Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,549 @@
+/*
+* Copyright (c) 2006-2006 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 encapsulating core engine settings and statuses.
+*
+*/
+
+
+#ifndef CORE_SETTINGS_H
+#define CORE_SETTINGS_H
+
+#include "core_types.h"
+#include "core_type_list.h"
+#include "core_roam_metrics.h"
+
+/**
+ * Class encapsulating core engine settings and statuses.
+ *
+ * @since S60 v3.1
+ */
+NONSHARABLE_CLASS( core_settings_c )
+ {
+
+public:
+
+ /**
+ * Constructor.
+ *
+ * @param features Bitmask of enabled features.
+ */
+ core_settings_c(
+ u32_t features );
+
+ /**
+ * Destructor.
+ */
+ virtual ~core_settings_c();
+
+ /**
+ * Check whether the WLAN drivers have been loaded.
+ *
+ * @since S60 v3.1
+ * @return true_t if the WLAN drivers have been loaded,
+ * false_t otherwise.
+ */
+ bool_t is_driver_loaded() const;
+
+ /**
+ * Set the state of the WLAN drivers.
+ *
+ * @since S60 v3.1
+ * @param is_driver_loaded true_t the WLAN drivers have been loaded,
+ * false_t otherwise.
+ */
+ void set_driver_state(
+ bool_t is_driver_loaded );
+
+ /**
+ * Check whether WLAN is enabled or disabled.
+ *
+ * @since S60 v3.1
+ * @return true_t if enabled,
+ * false_t otherwise.
+ */
+ bool_t is_wlan_enabled() const;
+
+ /**
+ * Set WLAN state enabled or disabled.
+ *
+ * @since S60 v3.1
+ * @param is_wlan_enabled true_t if enabling WLAN,
+ * false_t otherwise.
+ */
+ void set_wlan_enabled(
+ bool_t is_wlan_enabled );
+
+ /**
+ * Get the currently used power mode.
+ *
+ * @since S60 v3.1
+ * @return Currently used power mode.
+ */
+ const core_power_mode_s& power_mode() const;
+
+ /**
+ * Set the currently used power mode.
+ *
+ * @since S60 v3.1
+ * @param Currently used power mode.
+ */
+ void set_power_mode(
+ const core_power_mode_s& mode );
+
+ /**
+ * Get the preferred power save mode.
+ *
+ * @since S60 v3.1
+ * @return Preferred power save mode.
+ */
+ const core_power_save_mode_s& preferred_power_save_mode() const;
+
+ /**
+ * Set the preferred power save mode.
+ *
+ * @since S60 v3.1
+ * @param Preferred power save mode.
+ */
+ void set_preferred_power_save_mode(
+ const core_power_save_mode_s& mode );
+
+ /**
+ * Get current connection state.
+ *
+ * @since S60 v3.1
+ * @return connection state.
+ */
+ core_connection_state_e connection_state() const;
+
+ /**
+ * Set current connection state.
+ *
+ * @since S60 v3.1
+ * @param connection state.
+ */
+ void set_connection_state(
+ core_connection_state_e state );
+
+ /**
+ * Returns true/false based on connection state information
+ *
+ * @since S60 v3.1
+ * @return true or false
+ */
+ bool_t is_connected() const;
+
+ /**
+ * Check whether the permanent whitelist is empty.
+ *
+ * @since S60 v3.1
+ * @return Whether the permanent whitelist is empty.
+ */
+ bool_t is_permanent_whitelist_empty() const;
+
+ /**
+ * Check whether the given MAC address is permanently whitelisted.
+ *
+ * @since S60 v3.1
+ * @param mac MAC address to be checked.
+ * @return Whether the given MAC address is permanently whitelisted.
+ */
+ bool_t is_mac_in_permanent_whitelist(
+ const core_mac_address_s& mac );
+
+ /**
+ * Check whether the given MAC address is permanently blacklisted.
+ *
+ * @since S60 v3.1
+ * @param mac MAC address to be checked.
+ * @return Whether the given MAC address is permanently blacklisted.
+ */
+ bool_t is_mac_in_permanent_blacklist(
+ const core_mac_address_s& mac );
+
+ /**
+ * Add a MAC address to the permanent whitelist.
+ *
+ * @since S60 v3.1
+ * @param mac MAC address to be added.
+ */
+ void add_mac_to_permanent_whitelist(
+ const core_mac_address_s& mac );
+
+ /**
+ * Remove a MAC address from the permanent whitelist.
+ *
+ * @since S60 v3.1
+ * @param mac MAC address to be removed.
+ */
+ void remove_mac_from_permanent_whitelist(
+ const core_mac_address_s& mac );
+
+ /**
+ * Add a MAC address to the permanent blacklist.
+ *
+ * @since S60 v3.1
+ * @param mac MAC address to be added.
+ * @param reason Reason for the blacklist.
+ */
+ void add_mac_to_permanent_blacklist(
+ const core_mac_address_s& mac,
+ core_ap_blacklist_reason_e reason );
+
+ /**
+ * Remove a MAC address from the permanent blacklist.
+ *
+ * @since S60 v3.1
+ * @param mac MAC address to be removed.
+ */
+ void remove_mac_from_permanent_blacklist(
+ const core_mac_address_s& mac );
+
+ /**
+ * Return the permanent blacklist.
+ *
+ * @since S60 v3.2
+ * @return The permanent blacklist.
+ */
+ core_type_list_c<core_ap_blacklist_entry_s>& permanent_blacklist();
+
+ /**
+ * Set RCPI notification boundaries
+ *
+ * @since S60 v3.1
+ * @param rcp_decline_boundary Threshold for 'signal getting worse'.
+ * @param rcp_improve_boundary Threshold for 'signal getting better'.
+ */
+ void set_rcpi_boundaries(
+ u32_t rcp_decline_boundary,
+ u32_t rcp_improve_boundary );
+
+ /**
+ * Get the RCPI threshold for 'signal getting worse' indication.
+ *
+ * @since S60 v3.1
+ * @return The RCPI threshold for 'signal getting worse' indication.
+ */
+ u32_t rcp_decline_boundary() const;
+
+ /**
+ * Get the RCPI threshold for 'signal getting better' indication.
+ *
+ * @since S60 v3.1
+ * @return The RCPI threshold for 'signal getting better' indication.
+ */
+ u32_t rcp_improve_boundary() const;
+
+ /**
+ * Get the currently used regional domain.
+ *
+ * @since S60 v3.1
+ * @return The currently used regional domain.
+ */
+ core_wlan_region_e regional_domain() const;
+
+ /**
+ * Set the currently used regional domain.
+ *
+ * @since S60 v3.1
+ * @param region The currently used regional domain.
+ */
+ void set_regional_domain(
+ core_wlan_region_e region );
+
+ /**
+ * Get the information whether mobile country code is currently known.
+ *
+ * @since S60 v5.0
+ * @return Whether or not the mobile country code is currently known.
+ */
+ bool_t mcc_known() const;
+
+ /**
+ * Set the information whether or not the mobile country code is currently known.
+ *
+ * @since S60 v5.0
+ * @param mcc_known The information whether or not the mobile country code is currently known.
+ */
+ void set_mcc_known(
+ bool_t mcc_known );
+
+
+ /**
+ * Check whether the given channel is valid in the current regional domain.
+ *
+ * @since S60 v3.1
+ * @param band The band the channel is in.
+ * @param channel The channel to check.
+ * @return Whether the given channel is valid in the current regional domain.
+ */
+ bool_t is_valid_channel(
+ u8_t band,
+ u8_t channel ) const;
+
+ /**
+ * Return a channel mask with all of the allowed channels in the current regional domain.
+ *
+ * @since S60 v3.1
+ * @return All of the allowed channels in the current regional domain.
+ */
+ core_scan_channels_s all_valid_scan_channels() const;
+
+ /**
+ * Return a channel mask with invalid channels filtered out.
+ *
+ * @since S60 v3.1
+ * @param channels Channel mask to be filtered.
+ * @return A channel mask with invalid channels filtered out.
+ */
+ core_scan_channels_s valid_scan_channels(
+ const core_scan_channels_s& channels );
+
+ /**
+ * Return a channel mask with valid channels filtered out.
+ *
+ * @since S60 v5.0
+ * @param channels Channel mask to be filtered.
+ * @return A channel mask with valid channels filtered out.
+ */
+ core_scan_channels_s invalid_scan_channels(
+ const core_scan_channels_s& channels );
+
+ /**
+ * Return whether a BT connection has been established.
+ *
+ * @since S60 v3.1
+ * @return Whether a BT connection has been established.
+ */
+ bool_t is_bt_connection_established() const;
+
+ /**
+ * Set whether a BT connection has been established.
+ *
+ * @since S60 v3.1
+ * @param true_t if connection established, false_t otherwise.
+ */
+ void set_bt_connection_established(
+ bool_t established );
+
+ /**
+ * Get packet statistics for the connection that is/was active.
+ *
+ * @since S60 v3.2
+ * @return Packet statistics for the connection that is/was active.
+ */
+ const core_packet_statistics_by_access_category_s& connection_statistics_by_access_category();
+
+ /**
+ * Get packet statistics for the connection that is/was active.
+ *
+ * @since S60 v3.2
+ * @return Packet statistics for the connection that is/was active.
+ */
+ core_packet_statistics_s connection_statistics();
+
+ /**
+ * Update packet statistics for the currently active connection.
+ *
+ * @since S60 v3.2
+ * @param statistics Packet statistics for the currently active connection.
+ */
+ void update_connection_statistics(
+ const core_packet_statistics_by_access_category_s& statistics );
+
+ /**
+ * Clear the packet statistics.
+ *
+ * @since S60 v3.2
+ */
+ void clear_connection_statistics();
+
+ /**
+ * Return the roam metrics for the currently active connection.
+ *
+ * @since S60 v3.2
+ * @return The roam metrics for the currently active connection.
+ */
+ core_roam_metrics_c& roam_metrics();
+
+ /**
+ * Get a list of channels that have APs with long beacon intervals.
+ *
+ * @since S60 v3.2
+ * @return List of channels that have APs with long beacon intervals.
+ */
+ core_long_beacon_interval_channels_s& long_beacon_interval_channels();
+
+ /**
+ * Get the U-APSD settings for access classes.
+ *
+ * @since S60 v3.2
+ * @return The U-APSD settings.
+ */
+ const core_uapsd_settings_s& uapsd_settings();
+
+ /**
+ * Check whether U-APSD is enable for the given access class
+ *
+ * @since S60 v3.2
+ * @param access_class Access class to check.
+ * @return Whether U-APSD is enable for the given access class.
+ */
+ bool_t is_uapsd_enable_for_access_class(
+ core_access_class_e access_class );
+
+ /**
+ * Set the U-APSD settings for access classes.
+ *
+ * @since S60 v3.2
+ * @param settings The U-APSD settings to be stored.
+ */
+ void set_uapsd_settings(
+ const core_uapsd_settings_s& settings );
+
+ /**
+ * Get the power save settings for access classes.
+ *
+ * @since S60 v3.2
+ * @return The power save settings.
+ */
+ const core_power_save_settings_s& power_save_settings();
+
+ /**
+ * Set the power save settings for access classes.
+ *
+ * @since S60 v3.2
+ * @param settings The power save settings to be stored.
+ */
+ void set_power_save_settings(
+ const core_power_save_settings_s& settings );
+
+ /**
+ * Get the block ACK usage information.
+ *
+ * @since S60 v5.1
+ * @return The block ACK usage information.
+ */
+ const core_block_ack_usage_s& block_ack_usage();
+
+ /**
+ * Set the block ACK usage per traffic stream.
+ *
+ * @since S60 v5.1
+ * @param usage The block ACK usage information to be stored.
+ */
+ void set_block_ack_usage(
+ const core_block_ack_usage_s& usage );
+
+ /**
+ * Add a IAP ID to the weaklist.
+ *
+ * @since S60 v5.2
+ * @param iap_id IAP ID to be added.
+ */
+ void add_iap_id_to_weak_iap_list(u32_t iap_id);
+
+ /**
+ * Check whether the given IAP ID is weaklisted.
+ *
+ * @since S60 v5.2
+ * @param iap_id IAP ID to be checked.
+ * @return Whether the given IAP ID is weaklisted.
+ */
+ bool_t is_iap_id_in_weak_list( u32_t iap_id );
+
+ /**
+ * Remove a IAP ID from the weaklist.
+ *
+ * @since S60 v5.2
+ * @param iap_id IAP ID to be removed.
+ */
+ void remove_iap_id_from_weak_list( u32_t iap_id );
+
+ /**
+ * Check whether the given feature is enabled.
+ *
+ * @since S60 v5.2
+ * @param feature Feature flag to check.
+ * @return true_t if the feature is enabled, false_t otherwise.
+ */
+ bool_t is_feature_enabled(
+ core_feature_e feature ) const;
+
+private: // data
+
+ /** Defines whether wlan functionality is enabled or disabled */
+ bool_t is_wlan_enabled_m;
+
+ /** Defines whether the drivers have been loaded. */
+ bool_t is_driver_loaded_m;
+
+ /** Specifies the current connection state */
+ core_connection_state_e connection_state_m;
+
+ /** Currently used power mode. */
+ core_power_mode_s power_mode_m;
+
+ /** Preferred power save mode. */
+ core_power_save_mode_s preferred_power_save_m;
+
+ /** Permanent white list of APs. */
+ core_type_list_c<core_mac_address_s> perm_whitelist_m;
+
+ /** Permanent black list of APs. */
+ core_type_list_c<core_ap_blacklist_entry_s> perm_blacklist_m;
+
+ /** Threshold for RCPI is getting worse notification. */
+ u32_t rcp_decline_boundary_m;
+
+ /** Threshold for RCPI is getting better notification. */
+ u32_t rcp_improve_boundary_m;
+
+ /** Defines the currently used regional domain. */
+ core_wlan_region_e region_m;
+
+ /** Defines whether the mobile country code is known or not. */
+ bool_t mcc_known_m;
+
+ /** Defines whether a BT connection has been established. */
+ bool_t is_bt_connection_established_m;
+
+ /** Packet statistics for the connection that is/was active. */
+ core_packet_statistics_by_access_category_s current_statistics_m;
+
+ /** Roam metrics for the connection that is/was active. */
+ core_roam_metrics_c roam_metrics_m;
+
+ /** List of channels that have APs with long beacon intervals. */
+ core_long_beacon_interval_channels_s long_beacon_interval_channels_m;
+
+ /** U-APSD settings for access classes. */
+ core_uapsd_settings_s uapsd_settings_m;
+
+ /** Power save settings for access classes. */
+ core_power_save_settings_s power_save_settings_m;
+
+ /** Block ACK usage per traffic stream. */
+ core_block_ack_usage_s block_ack_usage_m;
+
+
+ /** List of IAP Ids whose rcpi values are weak */
+ core_type_list_c<u32_t> weak_iap_list_m;
+
+
+ /** Bitmask of enabled features. */
+ u32_t features_m;
+
+ };
+
+#endif // CORE_SETTINGS_H