diff -r 65a3ef1d5bd0 -r f742655b05bf convergedconnectionhandler/cchserver/inc/cchcommdbwatcher.h --- a/convergedconnectionhandler/cchserver/inc/cchcommdbwatcher.h Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,240 +0,0 @@ -/* -* Copyright (c) 2007 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: CCCHCommDbWatcher declaration -* -*/ - - -#ifndef C_CCHCOMMDBWATCHER_H -#define C_CCHCOMMDBWATCHER_H - -// INCLUDES -#include -#include -#include -#include -#include - -// CONSTANTS -// Stop requesting new notifications after this many consecutive errors -const TInt KCchConnCenRepErrorThreshold = 80; - -// MACROS -// None - -// DATA TYPES -class TDestinationData - { - public: - inline TDestinationData(): iDestId(0), iIapCount(0), iWlanIaps(0){} - inline TDestinationData(TInt aDestId, TInt aIapCount): - iDestId(aDestId), iIapCount(aIapCount), iWlanIaps(0){} - TInt iDestId; //CMM Destination ID - TInt iIapCount; //Number of IAPs under this destination - TInt iWlanIaps; //Number of WLAN IAPs under this destination - }; - -// FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -class MCCHCommDbWatcherObserver; -class CRepository; - -// CLASS DECLARATION - -/** - * CCCHCommDbWatcher declaration - * Handles CommsDb changes and notifies CCHServiceHandler at IAP count changes - * @lib cchserver.exe - * @since S60 3.2 - */ -NONSHARABLE_CLASS( CCCHCommDbWatcher ) : public CActive - { - -public: // Constructors and destructor - - static CCCHCommDbWatcher* NewL( MCCHCommDbWatcherObserver& aObserver ); - - static CCCHCommDbWatcher* NewLC( MCCHCommDbWatcherObserver& aObserver ); - - ~CCCHCommDbWatcher(); - -public: // new functions - - /** - * Returns number of IAPs that have WLAN bearer type - * @param aSNAPId ID of SNAP to check. Use value KErrNotFound - * to get number of WLAN IAPS without SNAP binding - * @param aWLANIapsOnly if ETrue, returns WLAN iap count in given SNAP - * @param aUpdateDestinations if ETrue, update destination before checking - * @return number of IAPs in given SNAP. KErrNotFound if no IAPS - * @since Series 60 3.2 - */ - TInt GetIapCountFromSnap( TInt aSNAPId, TBool aWLANIapsOnly, TBool aUpdateDestinations = EFalse ); - - /** - * Checks is IAP's bearer type WLAN AP. - * @param aIapId of IAP to check. - * @return ETrue if given IAP id is WLAN AP, otherwise EFalse. - * @since Series 60 3.2 - */ - TBool IsWlanApL( TInt aIapId ); - - /** - * Checks is IAP's bearer type VPN AP. - * @param aIapId of IAP to check. - * @return ETrue if given IAP id is VPN AP, otherwise EFalse. - */ - TBool IsVpnApL( TInt aIapId ); - - /** - * IAP's bearer getter. - * @param aIapId. - * @return TUint32 bearer type. - */ - TUint32 GetBearerL( TInt aIapId ); - - /** - * Removes IAPs which are not linked to VPN AP. - * @param aIapIds all connected iaps, afterward only linked IAPs. - * @param aIAPId VPN IAP to check. - */ - void RemoveOtherThanVpnIapsL( RArray& aIaps, TUint aIAPId ); - - -protected: // From base classes - - /** - * From CActive - * @since Series 60 3.2 - */ - void RunL(); - - /** - * From CActive - * @since Series 60 3.2 - */ - TInt RunError( TInt aError ); - - /** - * From CActive - * @since Series 60 3.2 - */ - void DoCancel(); - -private: - - /** - * C++ default constructor. - */ - CCCHCommDbWatcher( MCCHCommDbWatcherObserver& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /* - * Request notifications of cenrep changes - * @return KErrNone if succesful - */ - TInt RequestNotifications(); - - /** - * Check changes in IAPs / SNAP configurations - * @param aChanged will be ETrue if there has been changes to - * either total WLAN AP count or SNAP/IAP configuration - * @param aSNAPId will contain ID of the changed SNAP that - * contains now more WLAN Iaps - */ - void CheckIapsL( TBool& aChanged, TInt& aSNAPId ); - - /** - * Count number of Iaps in an array of TDestinationData. - * Helper function to detect new iap additions - * @param aArray Array to count from - * @return total number of IAPs from the given destinations array - * @since S60 3.2 - */ - TInt CountIapsFromArray( RArray& aArray ) const; - - /** - * Updates internal iDestinations store after a SNAP configuration change. - * Determines also the SNAP where WLAN iap(s) were added. - * @param aDestinations current Snap configuration attained from cmmanager - * @param aChanged will be ETrue if there is a new WLAN iap - * @param aSNAPId holds the SNAP id of the added WLAN iap - * @since S60 3.2 - */ - void UpdateDestinationStore( RArray& aDestinations, - TBool& aChanged, - TInt& aSNAPId); - - /** - * Updates IAPs / SNAPs configurations and notifies our client if - * there is some changes. - * @return TInt general symbian error code. - */ - TInt UpdateIapTable(); - - /** - * Open connection to cmmanager - * @return RCmManager reference to cmmanager - */ - RCmManager& CmManagerL(); - - /** - * Initializes destinations. - */ - void InitializeDestination(); - -private: // data - - ///not own: observer to notify when there are changes in WLAN IAP/SNAPs - MCCHCommDbWatcherObserver& iObserver; - - ///own: Commsdb access to get notifications about changes - CCommsDatabase* iCommDb; - - // Central repository to get notifications of commsdat changes - CRepository* iRepository; - - // Table id for iap table - TUint32 iTableId; - - ///own: array holding information about iap count per destination - // index 0 will contain count of iaps not bound to any - // destination - RArray iDestinations; - - //own, connectionmethodmanager - RCmManager iCmm; - - // indicates is cmmanager open - TBool iCmmOpen; - - // Holds the last cmmanager error - TInt iLastError; - - // Error counter for cenrep notification request errors - TInt iErrorCounter; - - // Indicates do we have to use force when asking snap's iap - TBool iUseForce; - }; - -#endif // C_CCHCOMMDBWATCHER_H - -// End of file