ipcm_pub/connection_settings_api/inc/cmmanager.h
changeset 0 5a93021fdf25
child 20 9c97ad6591ae
--- /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 <e32std.h>
+#include <e32base.h>
+#include <e32cmn.h>
+#include <cmdefconnvalues.h>
+#include <cmgenconnsettings.h>
+
+// 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<TUint32>& 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<TUint32>& 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<TBearerPriority>& 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<TBearerPriority>& 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<TBearerPriority>& 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<TUint32>& 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