diff -r 000000000000 -r 5a93021fdf25 ipcm_pub/connection_settings_api/inc/cmmanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipcm_pub/connection_settings_api/inc/cmmanager.h Thu Dec 17 08:55:21 2009 +0200 @@ -0,0 +1,417 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Connection manager IF class. +* +*/ + +#ifndef CMMANAGER_H +#define CMMANAGER_H + +// System Includes +#include +#include +#include +#include +#include + +// Forward Declarations +class RCmConnectionMethod; +class RCmDestination; +class CCmManagerImpl; +class TBearerPriority; +class CGulIcon; + +/** + * RCmManager gives access to network destinations and connection methods. + * + * @lib cmmanager.lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS(RCmManager) + { + //===================================================================== + // Constructors/Destructors + // + public: + + /** + * Default constructor. + */ + inline RCmManager(); + + //===================================================================== + // API functions + public: + + /** + * Symbian constructor + * + * @since S60 3.2 + */ + IMPORT_C void OpenL(); + + /** + * Symbian constructor + * Pushes the object on the cleanup stack + * + * @since S60 3.2 + */ + IMPORT_C void OpenLC(); + + /** + * Secondary destructor + * + * @since S60 3.2 + */ + IMPORT_C void Close(); + + //======================================================================= + // Getter API + public: + + /** + * Used to query bearer information that doesn't belong + * to a specific connection method, such as + * ECmCoverage or ECmDefaultPriority etc. + * + * @since S60 3.2 + * @param aBearerType the bearer + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C TUint32 GetBearerInfoIntL( TUint32 aBearerType, + TUint32 aAttribute ) const; + + + /** + * Used to query bearer information that doesn't belong + * to a specific connection method, such as + * ECmCoverage or ECmDefaultPriority etc. + * + * @since S60 3.2 + * @param aBearerType the bearer + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C TBool GetBearerInfoBoolL( TUint32 aBearerType, + TUint32 aAttribute ) const; + /** + * Used to query bearer information that doesn't belong + * to a specific connection method, such as + * ECmCoverage or ECmDefaultPriority etc. + * HBuf ownership is passed to the caller + * + * @since S60 3.2 + * @param aBearerType the bearer + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C HBufC* GetBearerInfoStringL( TUint32 aBearerType, + TUint32 aAttribute ) const; + /** + * Used to query bearer information that does not belong + * to a specific connection method, such as + * ECmCoverage or ECmDefaultPriority, etc. + * HBuf ownership is passed to the caller + * + * @since S60 3.2 + * @param aBearerType the bearer + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C HBufC8* GetBearerInfoString8L( TUint32 aBearerType, + TUint32 aAttribute ) const; + + /** + * Used to query any non-bearer specific information about + * a given connection method. This can be e.g. ECmBearerType, + * ECmName, ECmStartPage, etc. + * + * @since S60 3.2 + * @param aIapId the connection method id + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C TUint32 GetConnectionMethodInfoIntL( TUint32 aIapId, + TUint32 aAttribute ) const; + + /** + * Used to query any, non-bearer specific information about + * a given connection method. This can be e.g. ECmBearerType, + * ECmName, ECmStartPage, etc. + * + * @since S60 3.2 + * @param aIapId the connection method id + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C TBool GetConnectionMethodInfoBoolL( TUint32 aIapId, + TUint32 aAttribute ) const; + + /** + * Used to query any non-bearer specific information about + * a given connection method. This can be e.g. ECmBearerType, + * ECmName, ECmStartPage, etc. + * HBuf ownership is passed to the caller + * + * @since S60 3.2 + * @param aIapId the connection method id + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C HBufC* GetConnectionMethodInfoStringL( TUint32 aIapId, + TUint32 aAttribute ) const; + + /** + * Used to query any non-bearer specific information about + * a given connection method. This can be e.g. ECmBearerType, + * ECmName, ECmStartPage, etc. + * HBuf ownership is passed to the caller + * + * @since S60 3.2 + * @param aIapId the connection method id + * @param aAttribute the setting value + * @return the setting value + */ + IMPORT_C HBufC8* GetConnectionMethodInfoString8L( TUint32 aIapId, + TUint32 aAttribute ) const; + + /** + * Returns the connection method queried by its ID + * + * @since S60 3.2 + * @param aConnectionMethodId id of the connection method + * @return RCmConnectionMethod connection method + */ + IMPORT_C RCmConnectionMethod ConnectionMethodL( + TUint32 aConnectionMethodId ) const; + + /** + * Returns the list of connection methods. Connection Methods are + * filtered by the switch parameters e.g. aLegacyOnly. + * + * @since S60 3.2 + * @param aCMArray on return it is the array of IAP ids. + * @param aCheckBearerType If ETrue only connection methods with + * supported bearer type are returned + * @param aLegacyOnly when set to ETrue only Legacy IAP ids will + * be returned + * @param aEasyWlan when set to ETrue EasyWlan id is returned, too + */ + IMPORT_C void ConnectionMethodL( RArray& aCMArray, + TBool aCheckBearerType = ETrue, + TBool aLegacyOnly = ETrue, + TBool aEasyWlan = EFalse ) const; + + /** + * Returns an array of all destination id's + * + * @since S60 3.2 + * @param aDestArray list all available destinations' id + */ + IMPORT_C void AllDestinationsL( RArray& aDestArray ) const; + + /** + * Returns the destination to which a specified + * connection method belongs, search is by destination ID + * + * @since S60 3.2 + * @param aDestinationId id of destination + * @return RCmDestination network destination + */ + IMPORT_C RCmDestination DestinationL( TUint32 aDestinationId ) const; + + /** + * Returns the copy of the bearer priority array. Ownership is passed. + * + * @since S60 3.2 + * @param aArray bearer priority array + */ + IMPORT_C void BearerPriorityArrayL( + RArray& aArray ) const; + + /** + * Clean up passed global bearer priority array. Delete + * the elements and calls Reset and Close on the array. + * + * @since S60 3.2 + * @param aArray array to be cleaned up + */ + IMPORT_C void CleanupGlobalPriorityArray( + RArray& aArray ) const; + + /** + * Returns the id of the EasyWlan connection method. + * + * @since S60 3.2 + * @return id of the EasyWLan connection method. 0 if not found. + */ + IMPORT_C TUint32 EasyWlanIdL() const; + + /** + * Returns the default connection method/SNAP. + * + * @since S60 3.2 + */ + IMPORT_C void ReadDefConnL( TCmDefConnValue& aDCSetting ); + + /** + * Stores the default connection method/SNAP. + * + * @since S60 3.2 + */ + IMPORT_C void WriteDefConnL( const TCmDefConnValue& aDCSetting ); + + + /** + * Returns the general connection settings. + * + * @since S60 9.2 + */ + IMPORT_C void ReadGenConnSettingsL( TCmGenConnSettings& aGenConnSettings ); + + /** + * Writes the general connection settings. + * + * @since S60 9.2 + */ + IMPORT_C void WriteGenConnSettingsL( const TCmGenConnSettings& aGenConnSettings ); + + + /** Open session and create tables if they don't exist*/ + IMPORT_C void CreateTablesAndOpenL(); + + /** + * Creates a Destination with the passed name. + * @param aName the name of the new destination. + * @return RCmDestination new destination. ownership is passed to the + * caller + */ + IMPORT_C RCmDestination CreateDestinationL( const TDesC& aName ); + + /** + * Creates a connection method does not belong to any destination + * @param aImplementationUid - bearer type of the new connection method + * @return RCmConnectionMethod newly created connection method. + */ + IMPORT_C RCmConnectionMethod CreateConnectionMethodL( TUint32 aBearerType ); + + /** + * Copies a connection method belonging to one destination to + * another. The connection method becomes shared. + * Calls UpdateL on the destination + * @param aTargetDestination + * @param aConnectionMethodId + * @return TInt - index in the Connection Method list + */ + IMPORT_C TInt CopyConnectionMethodL( RCmDestination& aTargetDestination, + RCmConnectionMethod& aConnectionMethod ); + + /** + * Moves a connection method belonging to one destination to + * another. The connection method is removed from the source destination + * @param aSourceDestination + * @param aTargetDestination + * @param aConnectionMethod + * @return TInt - index in the Connection Method list + */ + IMPORT_C TInt MoveConnectionMethodL( RCmDestination& aSourceDestination, + RCmDestination& aTargetDestination, + RCmConnectionMethod& aConnectionMethod ); + + /** + * Remove connection method from the destination + * @param aDestination destination the connection method is attached to + * @param aConnectionMethod connection method to be removed + */ + IMPORT_C void RemoveConnectionMethodL( RCmDestination& aDestination, + RCmConnectionMethod& aConnectionMethod ); + + /** + * Removes connection method from every destination and make it + * uncategorized. + * @param aConnectionMethod connection method to be removed + */ + IMPORT_C void RemoveAllReferencesL( RCmConnectionMethod& aConnectionMethod ); + + /** + * Update bearer priority array + * @param aArray array with new global bearer priority + */ + IMPORT_C void UpdateBearerPriorityArrayL( const RArray& aArray ); + + /** + * Creates a Destination with the passed name and id. + * @param aName the name of the new destination. + * @param aDestId Predefined id of the destination. + * @return RCmDestination newly created destination or leaves with + * KErrAlreadyExists if there exists CM with the same Id. + * Ownership is passed to the caller. + */ + IMPORT_C RCmDestination CreateDestinationL( const TDesC& aName, + TUint32 aDestId ); + + /** + * Creates a connection method does not belong to any destination + * @param aImplementationUid - bearer type of the new connection + * method + * @param aConnMethodId Predefined id for the connection method. + * @return RCmConnectionMethod newly created connection + * method or leaves with KErrAlreadyExists if there exists CM + * with the same Id. + */ + IMPORT_C RCmConnectionMethod CreateConnectionMethodL( TUint32 aImplementationUid, + TUint32 aConnMethodId ); + + /** + * Query all of the supported bearer types. + * @param aArray list of all supported bearer types. + */ + IMPORT_C void SupportedBearersL( RArray& aArray ) const; + + /** + * Returns "Uncategorized" icon. + * This fucton leaves if the client does not have a valid UI context + * @return CGulIcon* Icon of uncategorized connection methods. Ownership + * is passed. + */ + IMPORT_C CGulIcon* UncategorizedIconL() const; + + private: + /** + * This is a private copy constructor without implementation. + * The sole purpose of this declaration is to forbid the copying of + * the objects of this class. + */ + RCmManager(RCmManager& ); + /** + * This is a private copy constructor without implementation. + * The sole purpose of this declaration is to forbid the copying of + * the objects of this class. + */ + RCmManager& operator=( RCmManager& ); + //========================================================================= + // Member data + + private: + + /** + * the implementation class + */ + CCmManagerImpl* iImplementation; + }; + +#include "cmmanager.inl" + +#endif // CMMANAGER_H