diff -r 05bc53fe583b -r 83ca720e2b9a cmmanager/cmmgr/cmmserver/inc/cmminstancemapping.h --- a/cmmanager/cmmgr/cmmserver/inc/cmminstancemapping.h Tue Aug 31 15:35:44 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,339 +0,0 @@ -/* -* Copyright (c) 2009-2010 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: -* Keeps track of the general destination/connection method structure in -* database. -* -*/ - - -#ifndef CMMINSTANCEMAPPING_H_ -#define CMMINSTANCEMAPPING_H_ - -#include - -#include "cmmcache.h" -#include "cmmconnmethoditem.h" - - -NONSHARABLE_CLASS( CDestination ) : public CBase - { -public: - static CDestination* NewL(); - static CDestination* NewLC(); - ~CDestination(); - -private: - CDestination(); - void ConstructL(); - -public: - // The destination ID. - TUint32 iId; - - // Array of connection methods inside this destination. Includes also - // embedded destinations. - RArray iConnMethodItemArray; - - // IDs for unsupported connection methods inside this destination. - RArray iUnsupportedConnMethods; - - // The destination metadata. - TUint32 iMetadata; - }; - - -NONSHARABLE_CLASS( CCmmInstanceMapping ) : public CBase - { -public: - /** - * NewL. - */ - static CCmmInstanceMapping* NewL( CCmmCache& aCache ); - - /** - * NewLC. - */ - static CCmmInstanceMapping* NewLC( CCmmCache& aCache ); - - /** - * Destructor. - */ - ~CCmmInstanceMapping(); - -private: - /** - * Constructor. - * - * @param aCache database cache object. - */ - CCmmInstanceMapping( CCmmCache& aCache ); - - /** - * Second phase constructor. - */ - void ConstructL(); - -public: //TODO, sort methods, they are currently in mixed order in .cpp file. - /** - * Update the connection method and destination structures to current state. - */ - void RefreshL(); - - /** - * Check if the given ID is a valid existing destination ID. - */ - TBool ValidDestinationId( const TUint32 aId ) const; - - /** - * Check if the given ID is a valid existing connection method ID. - */ - TBool ValidConnMethodId( const TUint32 aId ) const; - - /** - * Check if the given ID is a valid existing unsupported connection method - * ID. - */ - TBool UnsupportedConnMethodId( const TUint32 aId ) const; - - /** - * Check from database if the given destination is an embedded destination - * in any other destination. - */ - TBool DestinationIsEmbedded( const TUint32 aDestinationId ) const; - - /** - * Check from database if the given destination has an embedded destination. - */ - TBool DestinationHasEmbedded( const TUint32 aDestinationId ) const; - - /** - * Check from database if the given destination is pointed to by any - * virtual IAP. - */ - TBool DestinationPointedToByVirtualIap( const TUint32 aDestinationId ) const; - - /** - * Check from database if the given connection method is pointed to by any - * virtual IAP. - */ - TBool ConnMethodPointedToByVirtualIap( const TUint32 aConnMethodId ) const; - - /** - * Check if the given connection method is the only connection method in - * the given destination and if a virtual IAP points to that destination. - */ - TBool ConnMethodInDestinationButLocked( - const TUint32 aConnMethodId, - const TUint32 aDestinationId ) const; - - /** - * Get bearer type of connection method matching given ID. - * Return KErrNone if ID is found, KErrNotFound if not. - */ - TInt GetConnMethodBearerType( const TUint32 aConnMethodId, TUint32& bearerType ) const; - - /** - * Returns the number of destinations the provided connection method - * belongs to. - */ - TInt DestinationsContainingConnMethod( const TUint32 aConnMethodId ) const; - - /** - * Returns the destination ids containing the connection method given as - * parameter. - */ - void DestinationsContainingConnMethodL( - const TUint32 aConnMethodId, - RArray& aDestinationIds ) const; - - /** - * Find and return a copy of a connection method item matching the given ID. - * Returns KErrNotFound, if the connection method is not found. - */ - TInt GetConnMethodItem( - const TUint32 aConnMethodId, - TCmmConnMethodItem& aConnMethodItem ) const; - - /** - * Returns all conenction method IDs. Unsupported connection methods are - * included if aCheckBearerType is set to EFalse. - */ - void GetAllConnMethodsL( - RArray& aConnMethodArray, - TBool aCheckBearerType = ETrue ) const; - - /** - * Returns the number of destinations. - */ - TInt GetDestinationCount() const; - - /** - * Returns all the valid destinations. - */ - void GetDestinationsL( RArray& aDestinationArray ) const; - - /** - * Inserts all the valid connection methods inside the given destination - * into the provided connection method item array. The array is reset first. - */ - void GetConnMethodsFromDestinationL( - const TUint32 aDestinationId, - RArray& aConnMethodArray ) const; - - /** - * Returns ETrue if the provided connection method belongs to any other - * destination than the one given. - */ - TBool ConnMethodInOtherDestination( - const TUint32 aConnMethodId, - const TUint32 aDestinationId ); - - /** - * Return the EasyWLAN IAP ID, zero if not found or WLAN not supported. - */ - TUint32 EasyWlanIdL(); - - /** - * Find out the internet destination ID. ID is set to 0 if not found. - */ - void InternetDestinationIdL( TUint& aInternetDestinationId ); - - /** - * Add a connection method ID to deleted list. Ignores any duplicates. Also - * removes the connection method from destination/connection method - * structures so Refresh()-call is not needed. - */ - void AddConnMethodToDeletedListL( const TUint aConnMethodId ); - - /** - * Remove a connection method ID from deleted list. Nothing happens if ID - * is not found from the list. - */ - void RemoveConnMethodFromDeletedList( const TUint aConnMethodId ); - - /** - * Add a destination ID to deleted list. Ignores any duplicates. Also - * removes the destination from destination/connection method structures - * so Refresh()-call is not needed. - */ - void AddDestinationToDeletedListL( const TUint aDestinationId ); - - /** - * Remove a destination ID from deleted list. Nothing happens if ID is not - * found from the list. - */ - void RemoveDestinationFromDeletedList( const TUint aDestinationId ); - - /** - * Remove the connection method from current destination/connection method - * structures. This is a lot faster than calling Refresh(). - */ - void RemoveConnMethod( const TUint32 aConnMethodId ); - - /** - * Remove the connection method from current destination/connection method - * structures. This is a lot faster than calling Refresh(). The ID of any - * changed destination is added to the aChangedDestinations-array. - * Also adds the ID of any changed destinations to the provided array. - */ - void RemoveConnMethod( - const TUint32 aConnMethodId, - RArray& aChangedDestinations ); - - /** - * Remove the destination from current destination/connection method - * structures. This is a lot faster than calling Refresh(). - */ - void RemoveDestination( const TUint32 aDestinationId ); - - /** - * Remove the connection method from all destinations in the current - * destination/connection method structures. This is a lot faster than - * calling Refresh(). The ID of any changed destination is added to the - * aChangedDestinations-array. - */ - void RemoveConnMethodFromDestinations( - const TUint32 aConnMethodId, - RArray& aChangedDestinations ); - - /** - * Get the metadata of the destination identified with given id. - */ - TUint32 DestinationMetadata( const TUint32 aDestinationId ) const; - -private: - /** - * Reads all connection methods from database. - */ - void ReadAndValidateConnMethodsL(); - - /** - * Reads all destinations and the connection methods inside them. - */ - void ReadAndValidateDestinationsL(); - - /** - * Goes through the internal IAP table, checking all virtual IAPs that link - * to an IAP. If the linked IAP is not found, the virtual IAP is removed. - */ - void ValidateVirtualIapsLinkingToIaps(); - - /** - * Goes through the internal IAP table, checking all virtual IAPs that link - * to a SNAP. If the linked SNAP is not found, the virtual IAP is removed. - */ - void ValidateVirtualIapsLinkingToSnaps(); - - /** - * Find the destination item matching the provided destination ID. - * Returns a pointer to the internal destination item, NULL if not found. - */ - CDestination* GetDestination( const TUint32 aDestinationId ) const; - - /** - * Returns the reference to shared CommsDat session handle. - */ - CommsDat::CMDBSession& Session() const; - -private: - // The database cache object. - CCmmCache& iCache; - - // All supported connection methods. Does not include any embedded destinations. - RArray iConnMethodItemArray; - - // IDs for all unsupported connection methods. - RArray iUnsupportedConnMethods; - - // All destinations. - RPointerArray iDestinations; - - // Connection methods that are deleted, but not removed from database yet - // because some handles are still open to them and ID needs to be kept - // reserved. Kept in unsigned integer order. - RArray iDeletedConnMethods; - - // Destinations that are deleted, but not removed from database yet because - // some handles are still open to them and ID needs to be kept reserved. - // Kept in unsigned integer order. - RArray iDeletedDestinations; - - // EasyWLAN IAP ID, KMaxTUint32 if not known. - TUint32 iEasyWlanId; - }; - -#endif // CMMINSTANCEMAPPING_H_ - -// End of file