--- a/cmmanager/cmmgr/Framework/Inc/cmdestinationimpl.h Thu Aug 19 10:18:49 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,992 +0,0 @@
-/*
-* 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: Implementation of destination class.
-*
-*/
-
-#ifndef DESTINATIONIMPL_H
-#define DESTINATIONIMPL_H
-
-// User includes
-#include "cmmanager.hrh"
-#include <cmmanagerdef.h>
-
-// System includes
-#include <e32def.h>
-#include <e32base.h>
-#include <metadatabase.h>
-#include <commsdattypesv1_1.h>
-
-// CONSTANTS
-const TInt KCmInitIndex = 1;
-const TInt KNumOfIcons = 12;
-
-#define RECORD_FROM_ELEMENT_ID( elementId ) \
- (( elementId & KCDMaskShowRecordId ) >> 8 )
-
-enum TSnapMetadataProtecionLevel
- {
- EProtectionLevel0 = 0x00000000,
- EProtectionLevel1 = 0x10000000,
- EProtectionLevel2 = 0x20000000
- };
-
-#define KSnapMetadataProtecionLevelMask 0xF0000000;
-
-// DATA TYPES
-
-// FORWARD DECLARATIONS
-class CCmManagerImpl;
-class CCmPluginBaseEng;
-class CCmPluginBase;
-class TCmPluginInitParam;
-class CPluginItem;
-class CCDDataMobilitySelectionPolicyRecord;
-class CGulIcon;
-class CCmTransactionHandler;
-class CCDSNAPMetadataRecord;
-
-typedef CArrayPtrFlat<CPluginItem> CCmArray;
-
-#define KFlagRemove 0x00000001
-
-typedef CCDDataMobilitySelectionPolicyRecord CCDSnapRecord;
-
-const TUint32 KCmDefaultDestinationAPTagId = 0x1000;
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CPluginItem) : public CBase
- {
- public:
-
- enum
- {
- ERemoveCm = 0x00000001
- };
-
- public:
-
- CCDSnapRecord* iDNRecord;
- CCmPluginBase* iPlugin;
- TUint32 iFlags;
- };
-
-/**
- * Holds all the destination specific data of the CCmDestinationImpl
- * This class is put in the object pool and may be shared
- * among CCmDestinationImpl objects
- */
-NONSHARABLE_CLASS( CCmDestinationData ): public CBase
- {
- //=====================================================================
- // Constructors/Destructors
- //
- public:
- CCmDestinationData( CCmManagerImpl& aCmMgr );
- ~CCmDestinationData();
- /**
- * Increments the reference counter. Used by the object pool.
- */
- void IncrementRefCounter();
- /**
- * Increments the reference counter. Used by the object pool.
- */
- void DecrementRefCounter();
- private:
- /**
- * Reset and, if needed, destroy the passed array.
- * @since S60 3.2
- * @param aArray array to be reseted and deleted
- * @parar aDestroy ETrue if array has to be deleted
- */
- void ResetAndDestroyArray( CCmArray* &aArray, TBool aDestroy );
-
- public:
- /**
- * Returns the number of connection methods of the destination
- * @param None
- * @return TInt
- */
- TInt ConnectionMethodCount();
-
- /**
- * Returns the destination's Id attribute
- * @param None
- * @return TUint32
- */
- inline TUint32 Id(){return iDestAPRecord->iRecordTag;};
-
- /**
- * Returns the destination's ElementId attribute
- * @param None
- * @return TUint32
- */
- inline TUint32 ElementId()
- { return iNetworkRecord->ElementId() & KCDMaskShowField;};
-
- /**
- * Returns that the destination is protected or not.
- * @return protection level
- */
- CMManager::TProtectionLevel ProtectionLevel();
-
- /**
- * Returns that the destination is hidden or not.
- * @param None
- * @return TBool
- */
- TBool IsHiddenL();
-
- /**
- * Indicates if the Id is valid or if this is a new object which sitll
- * haven't been updated.
- * Used by the object pool.
- * @return TBool
- */
- TBool IdIsValid();
-
- /**
- * Returns the reference counter. Used by the object pool.
- * @return TInt
- */
- TInt GetRefCounter();
- /**
- * Returns pointer to the CmManager object
- * Used in 'R' classes
- */
- CCmManagerImpl* Cmmgr();
-
- /**
- * Returns the Metadata
- * @param None
- * @return TUint32
- */
- TUint32 MetadataL( CMManager::TSnapMetadataField aMetaField ) const;
-
- private:
- CCmManagerImpl& iCmMgr; //< Not owned
- CommsDat::CCDNetworkRecord* iNetworkRecord;
-
- //To store Connection methods that belong to this destination
- CCmArray* iConnMethodArray;
- CCmArray* iDeleteCmArray;
-
- // DN_IAP Table has to be update if
- // - new CM is added to the destination
- // - CM is delete from the destination
- // - CM priority modified
- TBool iDNTableChanged;
-
- //Protection changed
- TBool iProtectionChanged;
- //The last protection level of the destination
- TUint iLastProtectionLevel;
-
- CCDSNAPMetadataRecord* iMetaDataRec;
- //Reference counter for the object pool
- TInt iRefCounter;
- //indicates if the Id is valid or not (for the object pool)
- TBool iIdIsValid;
- CommsDat::CCDAccessPointRecord* iDestAPRecord;
-
- friend class CCmDestinationImpl;
- friend class CCmManagerImpl;
- TBool iNewWithId;
- };
-/**
- * RCmDestination is for getting/setting values of a network destination.
- * @lib cmmanager.lib
- * @since S60 v3.2
- */
-NONSHARABLE_CLASS( CCmDestinationImpl ) : public CBase
- {
- public:
- //=====================================================================
- // Constructors/Destructors
- //
- public:
-
- /** Destructor. */
- ~CCmDestinationImpl();
-
- /** Epoc constructor
- * This should be used only by the object pool
- */
- IMPORT_C static CCmDestinationImpl* NewL( CCmManagerImpl& aCmMgr,
- const TDesC& aName );
-
- /** Epoc constructor
- * This should be used only by the object pool
- */
- static CCmDestinationImpl* NewL( CCmManagerImpl& aCmMgr,
- CCmDestinationData* aData );
-
- /** Epoc constructor
- * This should be used only by the 'R' classes
- */
- static CCmDestinationImpl* NewLC( CCmDestinationData* aData );
-
- /** Epoc constructor
- * This should be used only by the object pool
- */
- IMPORT_C static CCmDestinationImpl* NewL( CCmManagerImpl& aCmMgr,
- TUint aDestinationId );
-
- public:
- /**
- * Returns pointer to the CmManager object
- * Used in 'R' classes
- */
- CCmManagerImpl* Cmmgr();
- //=====================================================================
- // Conn method handling
-
- /**
- * Create a connection method belonging to the destination
- * @param aImplementationUid - implementation uid of the connection
- * method
- * @return CCmPluginBaseEng*
- */
- CCmPluginBase* CreateConnectionMethodL( TUint32 aBearerType );
-
- /**
- * Create a connection method belonging to the destination
- * @param aBearerType - implementation uid of the connection
- * method
- * @param aConnMethId - Predefined id for the connection method.
- * @return CCmPluginBaseEng*
- */
- CCmPluginBase* CreateConnectionMethodL( TUint32 aBearerType,
- TUint32 aConnMethId );
- /*
- * Adds an existing connection method to a destination
- * @param
- * @return TInt - index in the Connection Method list
- */
- TInt AddConnectionMethodL( CCmPluginBase& aConnectionMethod );
-
- /*
- * Embeds an existing destination to the destination
- * @param CCmDestinationImpl - Destinatio to be embedded
- * @return TInt - index in the Connection Method list
- */
- TInt AddEmbeddedDestinationL( CCmDestinationImpl& aDestination );
-
- /**
- * Remove a connection method from a destination and delete it
- * on update.
- * Exception: conenction method is not deleted if it's referenced
- * from any other destination.
- * @param aConnectionMethod the connection method to be deleted
- * @return none.
- */
- void DeleteConnectionMethodL( CCmPluginBase& aConnectionMethod );
-
- /**
- * Remove connection method from the destination
- * @param aConnectionMethod connection method to be removed
- */
- void RemoveConnectionMethodL( const CCmPluginBase& aConnectionMethod );
-
- /**
- * Remove connection method from the destination
- * @param aConnectionMethod connection method to be removed
- */
- void RemoveConnectionMethodL( const CCmPluginBaseEng& aConnectionMethod );
-
- /**
- * Notification from child plugin that it was deleted.
- * Remove it from the array and update priorities.
- * @param aConnectionMethod child connection method that was deleted.
- */
- void ConnectionMethodDeletedL( const CCmPluginBase& aConnectionMethod );
-
- /**
- * Set the CCMItem's priority based on the passed new index
- * @param aCCMItem The connection method item
- * @param aIndex The new index of the item in the list
- */
- void ModifyPriorityL( CCmPluginBase& aCCMItem, TUint aIndex );
-
- /**
- * Obsolete
- */
- TUint PriorityL( CCmPluginBaseEng& aCCMItem );
-
- /**
- * Return the priority of the passed connection method
- * @param aCCMItem queried connection method
- * @return the priority of the queried connection method
- */
- TUint PriorityL( CCmPluginBase& aCCMItem );
-
- /**
- * Returns the number of connection methods of the destination
- * @param None
- * @return TInt
- */
- IMPORT_C TInt ConnectionMethodCount();
-
- //Operator
-
- /**
- * Obsolete
- */
- IMPORT_C CCmPluginBaseEng* ConnectionMethodL( TInt anIndex );
-
- /**
- * Returns a reference to the connection method.
- * The index must be less than the return value of ConnMethodCount()
- * @param anIndex
- * @return plugin instance - ownership NOT passed
- */
- IMPORT_C CCmPluginBase* GetConnectionMethodL( TInt anIndex );
-
- /**
- * Returns a reference to the connection method.
- * The index must be less than the return value of ConnMethodCount()
- * @param anIapId IAP id of the queried connection method
- * @return plugin instance - ownership NOT passed
- */
- CCmPluginBase* ConnectionMethodByIDL( TUint32 anIapId );
-
- void ConnectMethodIdArrayL( RArray<TUint32>& aCmIds );
-
- //Getting attributes
-
- /**
- * Returns the destination's Name attribute
- * HBuf ownership is passed to the caller
- * @param None
- * @return name of the destination. ownership is passed.
- */
- IMPORT_C HBufC* NameLC();
-
- /**
- * Returns the destination's Id attribute
- * @param None
- * @return TUint32
- */
- inline TUint32 Id(){return iData->Id();};
-
- /**
- * Returns the destination's ElementId attribute
- * @param None
- * @return TUint32
- */
- inline TUint32 ElementId(){ return iData->ElementId();};
-
- /**
- * Returns the Icon pointer
- * This fucton leaves if the client does not have a valid UI context
- * @param None
- * @return TUint32
- */
- IMPORT_C CGulIcon* IconL();
-
- /**
- * Returns the Metadata
- * @param None
- * @return TUint32
- */
- TUint32 MetadataL( CMManager::TSnapMetadataField aMetaField ) const;
-
- /**
- * Returns if there's connection created with any of the destination's
- * connection method.
- * @return ETrue if there's connection with any of the destination's
- * connection method.
- */
- IMPORT_C TBool IsConnectedL() const;
-
- //=====================================================================
- //Setting Attributes
-
- /**
- * Set the destination's Name attribute. Leaves if the name already
- * exists
- * @param aDestinationName value to set
- * @return None
- */
- 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 value to set
- * @return None
- */
- IMPORT_C void SetIconL( TUint32 anIndex );
-
- /**
- * Set the Metadata
- * @param aMetaField field to be modified
- * @param aValue value to be set
- */
- void SetMetadataL( CMManager::TSnapMetadataField aMetaField,
- TUint32 aValue );
-
- /**
- * Returns that the destination is protected or not.
- * @return protection level
- */
- IMPORT_C CMManager::TProtectionLevel ProtectionLevel();
-
- /**
- * Set the protection of the destination.
- * @param aProtectionLevel
- * @return None
- */
- IMPORT_C void SetProtectionL( CMManager::TProtectionLevel aProtectionLevel );
-
- /**
- * Update all the attributes of the Connection Methods and the
- * Destination.
- * @return None
- */
- IMPORT_C void UpdateL();
-
- /**
- * Deletes it's connection methods from comms.dat (unless shared)
- * then deletes itself
- */
- IMPORT_C void DeleteLD();
-
- /**
- * Performs RollbackTransactionL().
- */
- void Close();
-
- /**
- * Set iPlugin to NULL in plugin array, but not delete it.
- * Next reference to this connection method will load the
- * plugin again.
- */
- void PluginClosed( CCmPluginBase* aPlugin );
-
- /**
- * Returns that the destination is hidden or not.
- * @param None
- * @return TBool
- */
- IMPORT_C TBool IsHidden();
-
- /**
- * Set that the destination is hidden or not.
- * @param aHidden - True if it is hidden.
- * @return None
- */
- IMPORT_C void SetHiddenL( TBool aHidden );
-
- /**
- * Check if the destination element id is already embeded.
- * Leaves with KErrNotSupported (multiple levels of embedding is not
- * supported)
- */
- void CheckIfEmbeddedL( TInt aId );
-
-
- static CGulIcon* IconIdL( CCmManagerImpl& aCmMgr,
- CommsDat::TMDBElementId aId );
-
- static CMManager::TProtectionLevel ProtectionLevelL( CCmManagerImpl& aCmMgr,
- CommsDat::TMDBElementId aId );
-
- /**
- * Removes this destination from the object pool.
- */
- IMPORT_C void RemoveFromPool();
-
- /**
- * Increments the reference counter. Used by the object pool.
- */
- void IncrementRefCounter();
- /**
- * Increments the reference counter. Used by the object pool.
- */
- void DecrementRefCounter();
- /**
- * Returns the reference counter. Used by the object pool.
- * @return TInt
- */
- TInt GetRefCounter();
-
- /**
- * Returns iData. Used by the object pool and the API oprators.
- * @return TInt
- */
- CCmDestinationData* GetData();
- /**
- * Used by the object pool and the API oprators.
- */
- void SetData(CCmDestinationData* aData);
- /**
- * Indicates if the Id is valid or if this is a new object which sitll
- * haven't been updated.
- * Used by the object pool.
- * @return TBool
- */
- TBool IdIsValid();
-
- /**
- * Returns pointer to embedded destination if there is any
- * @return CCmDestinationImpl* Pointer to embedded destination
- * Contains NULL if there is no destination embedded
- */
- CCmDestinationImpl* EmbeddedL();
-
- /**
- * Checks if this destination plus a possible embedded destinaion
- * contains a connection method which can be used for a connection
- * Doesn't check VPNs!
- * @return TBool ETrue if this destination or a destination embedded into
- * it contains a connection method. Otherwise returns EFalse
- */
- TBool CanUseToConnectL();
-
-
- /**
- * Reload connection method under this destination so as to
- * keep synchronization with CommsDat
- */
- void ReLoadConnectionMethodsL();
-
- /** Epoc constructor
- * This should be used only by the object pool
- */
- static CCmDestinationImpl* NewL( CCmManagerImpl& aCmMgr,
- const TDesC& aName,
- TUint32 aDestId);
-
-
- /**
- * Returns the Id of this Destination which is used to identify the Destination.
- * It is the Id saved to Destination Access Point's Tag field.
- */
- TUint32 GetDestinationAPTagId();
-
- /**
- * Checks if this destination already contains the given Connection Method
- * @param aConnectionMethod Connection Method to be checked whether it
- * already exists.
- * @return TBool ETrue if this Destination contais already the given CM. If the
- * Destination does not contain the given CM returns EFalse. Otherwise leaves
- * with system-wide error code.
- */
- TBool CheckIfCMExistsL( CCmPluginBase& aConnectionMethod );
-
-
- //=========================================================================
- // Construction
- //
- private:
-
- /**
- * Default constructor.
- * @param aCmManager connection method manager
- */
- CCmDestinationImpl( CCmManagerImpl& aCmMgr );
-
- /*
- * Create a new destination with the specified name
- */
- void ConstructL( const TDesC& aName );
-
- void ConstructL( const TDesC& aName, TUint32 aDestId );
-
- /*
- * Create a destination and initializes it
- * from the commsdat based on the id
- */
- void ConstructL( TUint aDestinationId );
-
- //=========================================================================
- // New functions
- //
- private:
-
- /**
- * Check if the destination contains and embedded destination
- * @since S60 3.2
- * @return ETrue if the destination contains and embedded destination
- */
- TBool HasEmbeddedL();
-
- /**
- * - Check if transaction is already opened
- * - Set iOwnTransaction is not and opens it and
- put 'this' on cleanup&close stack
- */
- void OpenTransactionLC();
-
- /**
- * - Check if the transaction is ours.
- * - If yes, commits the transaction.
- * - anyway does nothing
- * @praram aError - error id
- */
- void CommitTransactionL( TInt aError );
-
- /**
- * Rollback transaction.
- */
- void RollbackTransaction();
-
- /**
- * Returns the CommsDat session.
- * Do not close!
- * @return commsdat session
- */
- CommsDat::CMDBSession& Session()const;
-
- /**
- * Find the connection method in iConnMethodArray.
- * @param aConnectionMethod connection method to be searched for
- * @return index of the found item
- */
- TInt FindConnectionMethodL( const CCmPluginBase& aConnectionMethod );
-
- /**
- * Find the connection method in iConnMethodArray.
- * @param aConnectionMethod connection method to be searched for
- * @return index of the found item
- */
- TInt FindConnectionMethodL( const CCmPluginBaseEng& aConnectionMethod );
-
- /**
- * Update protection attributes of every connection method if changed.
- */
- void UpdateProtectionL();
-
- /**
- * Update every connection method.
- */
- void UpdateConnectionMethodsL();
-
- /**
- * Create or update the record of the network table for this
- * destination.
- */
- void UpdateNetworkRecordL();
-
- /**
- * Update the SNAP table
- */
- void UpdateSNAPTableL();
-
- /**
- * Update the SNAP Metadata table
- */
- void UpdateSNAPMetadataTableL();
-
- /**
- * Load network record. Destination id is passed, because
- * id is from the client application, and destinaion id
- * is the network id for them. :)
- * @param aDestinationId network record id
- */
- void LoadNetworkRecordL( TUint32 aDestinationId );
-
- /**
- * Load Destination AP record. Destination id is passed, because
- * id is from the client application, and destinaion id
- * is the network id for them. :)
- * @param aDestinationId network record id
- */
- void LoadDestAPRecordL( TUint32 aDestinationId );
-
- /**
- * Load connection methods of the destination
- */
- void LoadConnectionMethodsL();
-
- /**
- * Load SNAP Metadata table
- */
- void LoadSNAPMetadataTableL();
-
- /**
- * Create a connection method belonging to the destination
- * @param aImplementationUid - implementation uid of the connection
- * method
- * @param aParams - plugin init param
- * @return CCmPluginBaseEng*
- */
- CCmPluginBase* CreateConnectionMethodL( TUid aImplementationUid,
- TCmPluginInitParam& aParams );
-
- /**
- * Compare two records from DNIAP by their priority field.
- * @param aLeft one record from DN_IAP table.
- * @param aRight one record from DN_IAP table.
- * @return
- * - negative value, if aLeft is less than aRight;
- * - 0, if aLeft equals to aRight;
- * - positive value, if aLeft is greater than aRight.
- */
- static TInt SortRecordsByPriority( const CommsDat::CMDBRecordBase& aLeft,
- const CommsDat::CMDBRecordBase& aRight);
-
- /**
- * Add an item to the Connection Method array based on bearer priority
- * table.
- * @param aItem An item to be added.
- * @return TInt the index of the added item. The array contains an initial item,
- * so always SUBTRACT KCmInitIndex to get the connection method index number!!!
- */
- TInt AddToArrayL( CPluginItem* aItem );
-
- /**
- * IAP is considered to be removed from the commsdat by third
- * party (someone else external).
- * Seamlessness entries should also be removed.
- * @param aIapId Iap was removed
- */
- void CleanUpSeamlessnessTableL( TUint32 aIapId );
-
- /**
- * Embedded dest is considered to be removed from the commsdat
- * by third party (someone else external).
- * Snap Metadata entries should also be removed.
- * @param aSnap Id was removed
- */
- void CleanUpSnapMetadataTableL( TUint32 aSnap );
-
- /**
- * Embedded dest is considered to be removed from the commsdat
- * by third party (someone else external).
- * Snap Metadata entries should also be removed.
- * @param aSnap Id was removed
- */
- void CleanUpEmbeddedL( TUint32 aDestId );
-
- /**
- * Create and load plugin.
- * @param item where plugin has to be loaded.
- */
- void LoadPluginL( CPluginItem& aItem );
-
-
- /**
- * Create embedded destination plugin.
- * @param aItem - plugin item
- * @param TUint32 destination id
- */
- void CreateEmbeddedDestinationPluginL( CPluginItem& aItem,
- TInt aDestinationId );
- /**
- * Load embedded destination plugin.
- * @param aItem - plugin item
- */
- void LoadEmbeddedDestinationPluginL( CPluginItem& aItem );
-
- /**
- * Check if there is destination with this name.
- * Leaves with KErrAlreadyExists if name already exists
- * @param aName destination name
- */
- void CheckIfDestinationNameExistL( const TDesC& aName );
-
- /**
- * Set or clear attribute
- * @aRecord record of which the attribute is to be set or clear
- * @aAttribute attribute to be set or clear
- * @aSet ETrue to set
- */
- void SetAttribute( CommsDat::CMDBRecordBase* aRecord,
- TUint32 aAttribute,
- TBool aSet );
-
-
- /**
- * Delete all connection methods.
- * @since S60 3.2
- */
- void DeleteConnectionMethodsL();
-
- /**
- * Reference to a non-existing IAP found in the SNAP table.
- * Remove the SNAP record and the metadata record of this
- * IAP. IAP is most probably deleted by APEngine.
- * @param aSnapRecord SNAP record point to a non-existing IAP
- */
- void DeleteIAPRecordsL( CommsDat::CMDBRecordBase* aSnapRecord );
-
- /**
- * Check if the name of the passed record is the same as the name of
- * network one, and update it if not.
- * @param aRecord record to be checked and updated if needed
- */
- void CheckIfNameModifiedL( CCDSnapRecord* aRecord );
-
- /**
- * Checks if there's another SNAP with Internet bit set.
- * Leaves with KErrAlreadyExists if so.
- */
- void CheckIfInternetExistsL();
-
- /**
- * Return the index value of the connection method.
- * @param aCmId id of the connection method
- * @return index value in iConnMethodArray
- */
- TInt ConnectionMethodIndex( TUint32 aCmId );
-
- /**
- * Retrieves the base of the priority counts in cm list
- * It is the data of the plugin in case of none VPN.
- * It is the data of the underlying cm in case of VPN over cm.
- * It is "wildcard" in case of VPN over destination.
- * aRetBearer and aRetExtLevel are not filled in this case
- * @param aItem the plugin list item which data is get
- * @param aRetPrio the default priority of the cm in return
- * @param aRetBearer the bearer of the cm in return
- * @param aRetExtLevel the extenson level of the cm in return
- * @return ETrue if the cm is virtual else EFalse
- */
- TBool PrioDataL( CPluginItem* aItem, TUint32& aRetPrio,
- TUint32& aRetBearer, TUint32& aRetExtLevel );
-
-
-
- /**
- * Determines the position of the inserted item into the cm list.
- * This determination is based on the similarity of the bearer types.
- * The inserted position is just after the last item with the
- * same bearer type and virtuality - if exist else -1.
- * @param aBearerType bearer type od the inserted cm
- * @param aIsVirtual virtuality of the inserted cm
- * @return The position in the cm list where the item should be inserted.
- * If there is no cm with same bearer type in the list then it
- * returns -1;
- */
- TInt InsertSameMethodL( TUint32 aBearerType, TBool aIsVirtual );
-
- /**
- * Determines the position of the inserted item into the cm list.
- * This determination is based on the priority and the extension
- * level of the cm's.
- * @param aPrio default bearer type of the inserted cm
- * @param aExtLevel extension level of the inserted cm
- * @return The position in the cm list where the item should be inserted.
- */
- TInt InsertPriorityMethodL( TUint32 aPrio, TUint32 aExtLevel );
-
- /**
- * Checks if there's another SNAP with the same localised bit set.
- * Leaves with KErrAlreadyExists if so.
- */
- void CheckIfLocalisedDestExistL( TUint32 aValue );
-
- /**
- * Checks if there's another SNAP with the same purpose bit set.
- * Leaves with KErrAlreadyExists if so.
- */
- void CheckIfPurposeExistL( TUint32 aValue );
-
- static CGulIcon* IconL( TInt aIconIndex );
- static CMManager::TProtectionLevel ProtectionLevel( CCDSNAPMetadataRecord* aMetaDataRec );
-
- /**
- * Deletes all the recordsrelated to this Destination to be
- * deleted.
- * @param None
- * @return
- */
- void DeleteRelatedRecordsL( TInt aCount );
-
- /**
- * Checks if this(current) destination is referenced by any
- * Virtual Connection Method.
- * @param None
- * Leaves with KErrLocked if it's referenced.
- */
- void CheckIfReferencedByVirtualCML();
-
- /**
- * Initializes the Destination AccessPoint record
- * deleted.
- * @param aDestAPRecord Record to be initialized
- * @return
- */
- void InitializeDestAPRecordL();
-
- /**
- * Sets the given (tag)id to the accesspoint record
- * @param aDestId Id to be set
- * @return
- */
- void SetIdL( TInt aDestId );
-
- /**
- * Checks that there isn't any destination with the given (tag)id.
- * @param aDestId Id to be checked
- * @return
- */
- void CheckIfDestinationIdExistsL( TUint32 aDestId );
-
- /**
- * Create or update the record of the accesspoint table for this
- * destination.
- */
- void UpdateDestAPRecordL();
-
- /**
- * Creates an unique (tag)id to the record of the accesspoint table for this
- * destination.
- */
- TUint32 CreateDestinationAPTagIdL();
-
- /**
- * Sets the default Tier Manager to the accesspoint record for this
- * destination.
- */
- void SetDefaultTierManagerL();
-
- /**
- * Sets the default Meta Connection Provider to the accesspoint record for this
- * destination.
- */
- void SetDefaultMCprL();
-
- /**
- * Sets the default Connection Provider to the accesspoint record for this
- * destination.
- */
- void SetDefaultCprL();
-
- /**
- * Sets the default Subconnection Provider to the accesspoint record for this
- * destination.
- */
- void SetDefaultSCprL();
-
- /**
- * Sets the default Protocol to the accesspoint record for this
- * destination.
- */
- void SetDefaultProtocolL();
-
- //=========================================================================
- // Member variables
- //
- private:
- CCmManagerImpl& iCmMgr; //< Not owned
- CCmDestinationData* iData;
- private:
-
- friend class CCmManagerImpl;
- };
-
-#endif // DESTINATIONIMPL_H