diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/apselect.h --- a/epoc32/include/mw/apselect.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/apselect.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,745 @@ -apselect.h +/* +* Copyright (c) 2002 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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Declaration of the CApSelect class. +* +*/ + + +#ifndef CAPSELECT_H +#define CAPSELECT_H + +// Deprecation warning +#warning This header file has been deprecated. Will be removed in one of the next SDK releases. + + +// INCLUDES +#include +#include +#include + + +// FORWARD DECLARATIONS +class CApListItem; +class CApListItemList; +class CApUtils; + + + +enum TVpnFilterType + { + EVpnFilterVpnOnly, ///< Shows only VPN access points + EVpnFilterNoVpn, ///< Shows only non-VPN access points + EVpnFilterBoth ///< Shows both normal and VPN access points + }; + + +// CLASS DECLARATION +// Extra data holder +typedef struct + { + TInt iMaxIndex; + TInt iReqIpvType; + TInt iIsIpv6Supported; + TInt iExtra; + TBool iIsFeatureManagerInitialised; + TBool iCdma; + TInt iVpnFilterType; // TVpnFilterType values !! + TBool iWlanSupported; + TBool iIncludeEasyWlan; + }TSelectExtra; + + + +typedef struct + { + TUint32 iVpnIapId; + TUint32 iHomeIapId; + HBufC * iName; + }TVpnData; + + +/** +* This class is used to help client's access point selection. +* Selection can be tailored with specific filters, rules and sort order. +* Provides methods for setting and getting filters and sort order. +* +*/ +class CApSelect :public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. Leaves on failure, places instance + * on cleanup stack. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @return The constructed CApSelect. + * + * @deprecated + */ + IMPORT_C static CApSelect* NewLC( + CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType + ); + + + /** + * Two-phased constructor. Leaves on failure, places instance + * on cleanup stack. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @param aReqIpvType Filtering criteria on the IPv type of the + * access point. In case of GPRS, GPRS_PDP_TYPE holds it, while + * in case of CSD, all CSD access points are + * considered to be IPv4 & IPv6 (both) + * @return The constructed CApSelect. + * + * @deprecated + */ + IMPORT_C static CApSelect* NewLC( + CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TInt aReqIpvType + ); + + + + /** + * Two-phased constructor. Leaves on failure, places instance + * on cleanup stack. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @param aReqIpvType Filtering criteria on the IPv type of the + * access point. In case of GPRS, GPRS_PDP_TYPE holds it, while + * in case of CSD, all CSD access points are + * considered to be IPv4 & IPv6 (both) + * @param aVpnFilterType a TVpnFilterType enum specifying the + * vpn filtering. + * @return The constructed CApSelect. + * + * @deprecated + */ + IMPORT_C static CApSelect* NewLC( + CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TInt aReqIpvType, + TVpnFilterType aVpnFilterType ); + + + /** + * Two-phased constructor. Leaves on failure, places instance + * on cleanup stack. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @param aReqIpvType Filtering criteria on the IPv type of the + * access point. In case of GPRS, GPRS_PDP_TYPE holds it, while + * in case of CSD, all CSD access points are + * considered to be IPv4 & IPv6 (both) + * @param aVpnFilterType a TVpnFilterType enum specifying the + * vpn filtering. + * @param aIncludeEasyWlan TBool specifying whther to include + * EasyWlan access point in the list or not... + * @return The constructed CApSelect. + * + * @deprecated + */ + IMPORT_C static CApSelect* NewLC( + CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TInt aReqIpvType, + TVpnFilterType aVpnFilterType, + TBool aIncludeEasyWlan ); + + + /** + * Destructor. + * + * @deprecated + */ + IMPORT_C virtual ~CApSelect(); + + + protected: // Constructors + + /** + * C++ default constructor. + * + * @deprecated + */ + IMPORT_C CApSelect(); + + + /** + * Second-phase constructor. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * + * @deprecated + */ + IMPORT_C void ConstructL( + CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType + ); + + + /** + * Second-phase constructor. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @param aReqIpvType Filtering criteria on the IPv type of the + * access point. In case of GPRS, GPRS_PDP_TYPE holds it, while + * in case of CSD, all CSD access points are + * considered to be IPv4 & IPv6 (both) + * + * @deprecated + */ + IMPORT_C void ConstructL( + CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TInt aReqIpvType + ); + + + /** + * Second-phase constructor. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @param aReqIpvType Filtering criteria on the IPv type of the + * access point. In case of GPRS, GPRS_PDP_TYPE holds it, while + * in case of CSD, all CSD access points are + * considered to be IPv4 & IPv6 (both) + * @param aVpnFilterType a TVpnFilterType enum specifying the + * vpn filtering. + * + * @deprecated + */ + IMPORT_C void ConstructL( CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TInt aReqIpvType, + TVpnFilterType aVpnFilterType + ); + + /** + * Second-phase constructor. + * @param aDb a pointer to a CCommsDataBase. + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, KEApIspTypeWAPMandatory + * KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @param aReqIpvType Filtering criteria on the IPv type of the + * access point. In case of GPRS, GPRS_PDP_TYPE holds it, while + * in case of CSD, all CSD access points are + * considered to be IPv4 & IPv6 (both) + * @param aVpnFilterType a TVpnFilterType enum specifying the + * vpn filtering. + * @param aIncludeEasyWlan TBool specifying whther to include + * EasyWlan access point in the list or not... + * + * @deprecated + */ + IMPORT_C void ConstructL( CCommsDatabase& aDb, + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TInt aReqIpvType, + TVpnFilterType aVpnFilterType, + TBool aIncludeEasyWlan ); + + public: // New functions + /** + * Sets filters and sorting order for the list of available + * access points + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, + * KEApIspTypeWAPMandatory, KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * + * @deprecated + */ + IMPORT_C void SetFiltersL( + TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType + ); + + + + /** + * Gets the current ISP-type filter + * @return The current ISP-type filter + * + * @deprecated + */ + IMPORT_C TInt IspTypeFilter(); + + + /** + * Gets the current bearer-type filter + * @return The current bearer-type filter + * + * @deprecated + */ + IMPORT_C TInt BearerFilter(); + + + /** + * Gets the current sorting order + * @return The current sorting order + * + * @deprecated + */ + IMPORT_C TInt SortOrder(); + + + /** + * Navigates to the first access point in the list. + * @return Boolean indicating the success of the operation. + * + * @deprecated + */ + IMPORT_C TBool MoveToFirst(); + + + /** + * Navigates to the next access point in the list. + * @return Boolean indicating the success of the operation. + * + * @deprecated + */ + IMPORT_C TBool MoveNext(); + + + /** + * Navigates to the last access point in the list. + * @return Boolean indicating the success of the operation. + * + * @deprecated + */ + IMPORT_C TBool MoveLast(); + + + /** + * Navigates to the previous access point in the list. + * @return Boolean indicating the success of the operation. + * + * @deprecated + */ + IMPORT_C TBool MovePrev(); + + + /** + * Counts the items in the list + * @return The number of items in the list. + * + * @deprecated + */ + IMPORT_C TUint32 Count(); + + + /** + * Gets the name of the 'current' access point + * Ownership of the returned text is not passed. + * @return The name of the current access point + * + * @deprecated + */ + IMPORT_C const TDesC& Name(); + + + /** + * Gets the UID of the current access point + * @return The UID of the current access point + * + * @deprecated + */ + IMPORT_C TUint32 Uid(); + + + /** + * Gets the ISP-type of the current access point + * @return The ISP-type of the current access point. + * + * @deprecated + */ + IMPORT_C TCommsDbIspType Type(); + + + /** + * Gets the bearer-type of the current access point + * @return The bearer-type of the current access point. + * + * @deprecated + */ + IMPORT_C TApBearerType BearerType(); + + + /** + * Provides all data in a CApListItemList array. + * @param aList A reference to a CApListItemList object + * to hold the values. + * @return The number of items in the list. + * All elements in the aList array and their memory + * will be freed inside the routine. + * The routine expands or shrinks the array as necessary + * to minimize memory consumption. + * + * @deprecated + */ + IMPORT_C TInt AllListItemDataL( CApListItemList& aList ); + + /** + * Returns whether the current item is read-only or not. + * @return Returns whether the current item is read-only or not. + * + * @deprecated + */ + IMPORT_C TBool IsReadOnly() const; + + private: + /** + * This function updates the member data according to the + * current filter settings. + * @return Error code. + */ + TInt DoUpdateL(); + + + /** + * Gets the filtered and sorted wap table + * and places it on the Cleanupstack + */ + CCommsDbTableView* GetFilteredSortedWapTableViewLC(); + + + /** + * Gets the filtered and sorted IP bearer table + * and places it on the Cleanupstack + */ + CCommsDbTableView* GetFilteredSortedIpBearerTableViewLC(); + + + /** + * Gets the filtered and sorted ISP table + * and places it on the Cleanupstack + */ + CCommsDbTableView* GetFilteredSortedIspOutTableViewLC(); + + + /** + * Gets the filtered and sorted GPRS table + * and places it on the Cleanupstack + */ + CCommsDbTableView* GetFilteredSortedGprsTableViewLC( TBool aIn ); + + + /** + * Gets the filtered and sorted CDMA table + * and places it on the Cleanupstack + */ + CCommsDbTableView* GetFilteredSortedCdmaTableViewLC(); + + + /** + * Reads up the specified columns TUint32 values stored + * in the table and returns it in the passed array + */ + void GetUintValuesL + ( + CCommsDbTableView* aTable, + const TDesC& aField, + CArrayFixFlat& aArray + ); + + + /** + * Reads up the protection values stored + * in the table and returns it in the passed array + */ + void GetProtValuesL( CCommsDbTableView* aTable, + CArrayFixFlat& aArray ); + + /** + * Reads up the specified columns text values stored + * in the table and returns it in the passed array + */ + void GetTextValuesL + ( + CCommsDbTableView* aTable, + const TDesC& aField, + CArrayPtrFlat& aArray + ); + + + /** + * Reads up the specified columns long text values stored + * in the table and returns it in the passed array + */ + void GetLongTextValuesL + ( + CCommsDbTableView* aTable, + const TDesC& aField, + CArrayPtrFlat& aArray + ); + + + /** + * Returns whether a given value is in the given array or not + */ + TBool IsInArray( CArrayFixFlat* aArray, TUint32 aValue ); + + + /** + * Returns the position of a given value in the given array. + */ + TInt PosInArray( CArrayFixFlat* aArray, TUint32 aValue ); + + + /** + * Returns the position of an item with a given UID in the given list. + */ + TInt GetItemPos( CApListItemList* aTmpApList, TUint32 aId ); + + + /** + * Opens a view on the given table where a given text coloumn has + * a given value + * @return the opened view on the table + */ + CCommsDbTableView* OpenViewMatchingTextL + ( + const TDesC& aTableName, + const TDesC& aColumnToMatch, + const TDesC16& aValueToMatch + ); + + /** + * Gets the ISP values (ISP UID, ISP type, ISP bearer type) + * from a given table + * @param aTable the table to go through (already filtered & ordered) + * @param aArray An array to hold the readed values + * @param aColName Column name (different column names are used for + * CSD/GPRS/CDMA. + */ + void GetIspValuesL + ( + CCommsDbTableView* aTable, + CArrayFixFlat* aArray, + const TDesC& aColName + ); + + /** + * Gets the position of an element with a given IAP UID + */ + TInt GetIapPos + ( + CArrayFixFlat* aArray, + TUint32 aValue + ); + + /** + * Sorts the data according to localised sorting on the + * access point names, using CompareC + */ + void SortLocalisedNameL( TBool aAscending = ETrue ); + + + /** + * Sorts the data according to Uids + */ + void SortUidL( TBool aAscending = ETrue ); + + + + private: // New functions + /** + * Sets filters and sorting order for the list of available + * access points + * @param aIspTypeFilter Filtering criteria on ISP type + * Possible values are: + * KEApIspTypeInternetOnly, KEApIspTypeWAPOnly, + * KEApIspTypeInternetAndWAP, + * KEApIspTypeWAPMandatory, KEApIspTypeAll and their combinations. + * @param aBearerFilter Filtering criteria on bearer type + * Possible values are the TApBearer enums and + * their combinations (or-ed). + * @param aSortType Specifies the sort order to use. + * Possible values are: + * KEApSortUidAscending, KEApSortUidDescending, + * KEApSortNameAscending, KEApSortNameDescending + * @param aReqIpvType The filtering criteria for IPv type + * @param aVpnFilterType The Vpn filtering type, TVpnFilterType values + */ + void SetFiltersL( TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TInt aReqIpvType, + TInt aVpnFilterType + ); + + + /** + * Returns a pointer to the opened VPN_SERVICE table + */ + CCommsDbTableView* GetVpnTableViewLC(); + + + /** + * Gets the VPN values (VPN IAP UID, VPN HOME IAP UID, VPN Name ) + * from the given VPN table + * @param aTable the table to go through (already filtered & ordered) + * @param aVpnArray An array to hold the readed vpn data values + */ + void GetVpnValuesL( CCommsDbTableView* aTable, + CArrayFixFlat* aVpnArray ); + + + /** + * Returns the supported bearer set from the passed requested bearer set + * @param aBearerFilter The requested bearer set + * return The supported subset of the requested bearers. + */ + TInt GetSupportedBearerSet( TInt aBearerFilter ); + + + /** + * Adding WLAN or LAN access points to existing list. + * aWlan a TBool specifying whether WLAN or LAN + */ + void AddLanL( TBool aWlan ); + + + + + private: // Data + CCommsDatabase* iDb; // Does not own it! + TInt iIsp; + TInt iBearer; + TInt iSort; + CApListItemList* iApList; + TInt iCursor; + TInt iCount; + TSelectExtra* iExt; + + }; + +#endif // CAPSELECT_H + +// End of File