ipcm_pub/connection_settings_api/inc/cmdestination.h
branchRCL_3
changeset 58 83ca720e2b9a
parent 57 05bc53fe583b
--- a/ipcm_pub/connection_settings_api/inc/cmdestination.h	Tue Aug 31 15:35:44 2010 +0300
+++ b/ipcm_pub/connection_settings_api/inc/cmdestination.h	Wed Sep 01 12:23:51 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -11,24 +11,24 @@
 *
 * Contributors:
 *
-* Description:
-* Destination interface class.
+* Description:  Destination interface class.
 *
 */
 
-
 #ifndef DESTINATION_H
 #define DESTINATION_H
 
+// System includes
 #include <cmconnectionmethod.h>
 #include <cmmanagerdef.h>
+#include <e32def.h>
 #include <e32base.h>
 #include <metadatabase.h>
 
-// Forward declarations
-class RCmConnectionMethod;
-class CCmDestinationWrapper;
-
+// FORWARD DECLARATIONS
+class CCmManagerImpl;
+class CCmDestinationData;
+class CGulIcon;
 
 /**
  *  RCmDestination is for setting/getting values of a network destination.
@@ -36,42 +36,49 @@
  *  @lib cmmanager.lib
  *  @since S60 v3.2
  */
-NONSHARABLE_CLASS( RCmDestination )
+NONSHARABLE_CLASS(RCmDestination)
     {
+    //=====================================================================
+    // Constructors/Destructors
+    // 
     public:
+    
         /** Default constructor. */
         IMPORT_C RCmDestination();
 
         IMPORT_C ~RCmDestination();
 
-        IMPORT_C RCmDestination( const RCmDestination& aDestination );
+        IMPORT_C RCmDestination(const RCmDestination& aCmDestination);
+        
+    //=====================================================================
+    // API functions
+    public:
 
-    public:
         /**
         * Close the session.
         *
         * @since S60 3.2
         */
         IMPORT_C void Close();
-
+            
         /**
         * Returns the number of connection methods of the destination
         *
         * @since 3.2
-        * @return the number of connection methods belonging to a destination
-        */
+        * @return the number of connection methods belonging to a destination        
+        */                 
         IMPORT_C TInt ConnectionMethodCount() const;
-
+        
         /**
-        * Returns a reference to the connection method.
-        * The index must be less than the return value of
+        * Returns a reference to the connection method. 
+        * The index must be less than the return value of 
         * ConnectionMethodCount().
         *
         * @since 3.2
         * @param anIndex
         * @return a connection method
-        */
-        IMPORT_C RCmConnectionMethod ConnectionMethodL( TInt aIndex ) const;
+        */        
+        IMPORT_C RCmConnectionMethod ConnectionMethodL( TInt anIndex ) const;
 
         /**
         * Returns the connection method with the ECmId.
@@ -79,18 +86,19 @@
         * @param aCmId unique id of the requested connection method.
         * @return connection method
         */
-        IMPORT_C RCmConnectionMethod ConnectionMethodByIDL(
-                TInt aConnMethodId ) const;
+        IMPORT_C RCmConnectionMethod ConnectionMethodByIDL( 
+                                                        TInt aCmId ) const;
 
         /**
         * Return the priority of the passed connection method
         *
         * @since 3.2
         * @param aCCMItem connection method
-        * @return the priority of the queried connection method
+        * @return the priority of the queried connection method 
         */
-        IMPORT_C TUint PriorityL(
-                const RCmConnectionMethod& aConnectionMethod ) const;
+        IMPORT_C TUint PriorityL(const RCmConnectionMethod& aCCMItem ) const;
+        
+        //Getting attributes
 
         /**
         * Returns the destination's Name attribute
@@ -98,39 +106,47 @@
         *
         * @since 3.2
         * @return HBufC* Passes returned value's ownership to the caller
-        */
-        IMPORT_C HBufC* NameLC() const;
-
+        */      
+        IMPORT_C HBufC* NameLC() const;                        
+        
         /**
         * Returns the destination's Id attribute
         *
         * @since 3.2
         * @return the destination's id
-        */
+        */                    
         IMPORT_C TUint32 Id() const;
-
+        
         /**
         * Returns the destination's ElementId attribute
         *
         * @since 3.2
-        * @return the destination's element id
-        */
-        IMPORT_C TUint32 ElementId() const;
+        * @return the destination's element id        
+        */            
+        IMPORT_C TUint32 ElementId() const;        
+                
+        /**
+        * Returns the Icon pointer
+        * This function leaves if the client does not have a valid UI context
+        *
+        * @since 3.2
+        * @return the destination icon  
+        */ 
+        IMPORT_C CGulIcon* IconL() const;
 
         /**
         * Returns the Metadata
         *
         * @since 3.2
         * @param aMetaField the meta data field to query
-        * @return the value of the requested field
-        */
-        IMPORT_C TUint32 MetadataL(
-                CMManager::TSnapMetadataField aMetadataField ) const;
-
+        * @return the value of the requested field        
+        */            
+        IMPORT_C TUint32 MetadataL( CMManager::TSnapMetadataField aMetaField ) const;
+    
         /**
         * Return the protection level of the destination.
         *
-        * @since 3.2
+        * @since 3.2              
         * @return protection level of the destination
         */
         IMPORT_C CMManager::TProtectionLevel ProtectionLevel() const;
@@ -139,12 +155,12 @@
         * Returns if there's a connection created with any of the destination's
         * connection method.
         *
-        * @since 3.2
+        * @since 3.2        
         * @return ETrue if there's a connection with any of the destination's
         * connection method.
         */
         IMPORT_C TBool IsConnectedL() const;
-
+        
         /**
         * Returns whether the destination is hidden or not.
         *
@@ -154,85 +170,79 @@
         IMPORT_C TBool IsHidden() const;
 
         /**
-        * checks if destinations are the same
-        *
+        * checks if destinations are the same 
+        * 
         * @since S60 3.2
         * @param aDestination the destination being compared
         * @return ETrue if the destinations are the same
         */
-        IMPORT_C TBool operator==( const RCmDestination& aDestination ) const;
-
+        IMPORT_C TBool operator==(const RCmDestination& aDestination ) const;
+        
         /**
-        * checks if destinations are not the same
-        *
+        * checks if destinations are not the same 
+        * 
         * @since S60 3.2
         * @param aDestination the destination being compared
         * @return ETrue if the destinations are different
         */
-        IMPORT_C TBool operator!=( const RCmDestination& aDestination ) const;
+        IMPORT_C TBool operator!=(const RCmDestination& aDestination ) const;
 
         /**
-        * assignment operator
-        *
+        * assignment operator 
+        * 
         * @since S60 3.2
         * @param aDestination the destination being compared
         * @return RCmDestination
         */
-        IMPORT_C RCmDestination& operator=(
-                const RCmDestination&
-                aDestination );
+        IMPORT_C RCmDestination& operator=(const RCmDestination& 
+                                                    aCmDestination);
 
-        /**
+                /**
         * Create a connection method that belongs to this destination.
-        * @param aImplementationUid - implementation uid (bearer type) of the
+        * @param aImplementationUid - implementation uid (bearer type) of the 
         * connection method to be created
         * @return newly created connection method
         */
-        IMPORT_C RCmConnectionMethod CreateConnectionMethodL(
-                TUint32 aBearerType );
+        IMPORT_C RCmConnectionMethod CreateConnectionMethodL( TUint32 aBearerType );
 
-        /**
+        /*
         * Adds an existing connection method to a destination
         * @param aConnectionMethod Connection method to be added
         * @return index in the Connection Method list
         */
-        IMPORT_C TInt AddConnectionMethodL(
-                RCmConnectionMethod aConnectionMethod );
+        IMPORT_C TInt AddConnectionMethodL( RCmConnectionMethod aConnectionMethod );            
 
-        /**
+        /*
         * Embeds an existing destination into this destination.
         * @param RCmDestination - Destination to be embedded
         * @return TInt - index in the Connection Method list
         */
-        IMPORT_C TInt AddEmbeddedDestinationL(
-                const RCmDestination& aDestination );
+        IMPORT_C TInt AddEmbeddedDestinationL( const RCmDestination& aDestination );     
 
         /**
         * Remove a connection method from a destination and delete it
-        * on update.
-        * Exception: connection method is not deleted if it's referenced
+        * on update. 
+        * Exception: conenction method is not deleted  if it's referenced 
         * from any other destination.
         * @param aConnectionMethod the connection method to be deleted.
         */
-        IMPORT_C void DeleteConnectionMethodL(
-                RCmConnectionMethod& aConnectionMethod );
+        IMPORT_C void DeleteConnectionMethodL( RCmConnectionMethod& aConnectionMethod );
 
         /**
         * Remove connection method from the destination
         * @param aConnectionMethod connection method to be removed
         */
-        IMPORT_C void RemoveConnectionMethodL(
-                RCmConnectionMethod aConnectionMethod );
+        IMPORT_C void RemoveConnectionMethodL( RCmConnectionMethod aConnectionMethod );
+
 
         /**
         * Set the connection method's priority based on the passed index.
         * @param aCCMItem the connection method item
-        * @param aIndex the new priority of the connection method in the
+        * @param aIndex the new priority of the connection method in the 
         * destination
         */
-        IMPORT_C void ModifyPriorityL(
-                RCmConnectionMethod& aConnectionMethod,
-                TUint aIndex );
+        IMPORT_C void ModifyPriorityL( RCmConnectionMethod& aCCMItem, 
+                                       TUint aIndex );
 
         /**
         * Set the destination's name
@@ -241,17 +251,23 @@
         IMPORT_C void SetNameL( const TDesC& aName );
 
         /**
+        * Set the destination's icon index.
+        * This fucton leaves if the client does not have a valid UI context
+        * @param aIconIndex new icon index of the destination
+        */
+        IMPORT_C void SetIconL( TUint32 anIndex );
+
+        /**
         * Set the Metadata
         * @param aMetaField field to be modified
         * @param aValue value to be set
-        */
-        IMPORT_C void SetMetadataL(
-                CMManager::TSnapMetadataField aMetadataField,
-                TUint32 aValue );
+        */            
+        IMPORT_C void SetMetadataL( CMManager::TSnapMetadataField aMetaField, 
+                                    TUint32 aValue );
 
         /**
         * Set the protection level of the destination.
-        * @param aProtLevel new protection level
+        * @param aProtLevel new protection level 
         */
         IMPORT_C void SetProtectionL( CMManager::TProtectionLevel aProtLevel );
 
@@ -259,13 +275,13 @@
         * Set if the destination is hidden or not.
         * @param aHidden - ETrue if destination is hidden
         */
-        IMPORT_C void SetHiddenL( TBool aHidden );
+        IMPORT_C void SetHiddenL( TBool aHidden );         
 
         /**
         * Update all values of the destination and its connection method.
         * Nothing if stored, if update leaves due to any reason.
         */
-        IMPORT_C void UpdateL();
+        IMPORT_C void UpdateL();               
 
         /**
         * Delete destination and its connection methods from CommsDat.
@@ -275,48 +291,31 @@
         IMPORT_C void DeleteLD();
 
         /**
-        * Create a connection method with given id that belongs to this
-        * destination.
-        * @param aImplementationUid - implementation uid (bearer type) of the
+        * Create a connection method with given id that belongs to this destination.
+        * @param aImplementationUid - implementation uid (bearer type) of the 
         * connection method to be created
         * @return newly created connection method or leaves with
         * KErrAlreadyExists if there exists CM with the same Id.
         */
-        IMPORT_C RCmConnectionMethod CreateConnectionMethodL(
-                TUint32 aBearerType,
-                TUint32 aConnMethodId );
-
-        /**
-         * Gets the icon identifier(name) of the destination. It can
-         * contain path information. HBufC* ownership is passed to the caller.
-         * @return Returns pointer to a buffer which identifies the requested
-         * icon.
-         */
-        IMPORT_C HBufC* GetIconL() const;
-
-        /**
-         * Sets the icon identifier(name) of the destination. It can
-         * contain path information.
-         * @param aIcon Identifier of the destination icon.
-         */
-        IMPORT_C void SetIconL( const TDesC& aIcon );
-
-        /**
-        * Reload the contents of the destination from database.
-        * Any current changes made to the destination are lost.
-        * @return None.
-        */
-        IMPORT_C void RefreshL();
+        IMPORT_C RCmConnectionMethod CreateConnectionMethodL( TUint32 aBearerType,
+                                                              TUint32 aConnMethId );
 
 
-    private:
-        friend class RCmManager;
-        friend class RCmConnectionMethod;
+    //=======================================================================
+    // Member variables
+    //
+    private: 
+        
+        /**
+         * the implementation class
+         */
+        CCmDestinationData* iDestinatonData;
 
     private:
-        CCmDestinationWrapper* iCmDestinationWrapper;
+    
+        friend class RCmManager;
+        friend class RCmConnectionMethod;
     };
+    
 
 #endif // DESTINATION_H
-
-// End of file