diff -r f742655b05bf -r d38647835c2e convergedconnectionhandler/cchclientapi/inc/cchuiconnectionhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/convergedconnectionhandler/cchclientapi/inc/cchuiconnectionhandler.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,264 @@ +/* +* Copyright (c) 2008-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: +* +*/ + + +#ifndef C_CCCHUICONNECTIONHANDLER_H +#define C_CCCHUICONNECTIONHANDLER_H + +#include +#include +#include +#include +#include // TWlanConnectionSecurityMode +#include + +#include "cchuicommon.hrh" +#include "mcchuitimerobserver.h" + +class CCchUiCchHandler; +class CCchUiSpsHandler; +class RCmDestinationExt; +class CmConnectionMethodExt; +class CConnectionUiUtilities; + + +/** + * Connection Handler. + * This class implements the creation and altering of connections and SNAPs. + * + * @code + * // Create CCH handler and SPS handler and give them as parameters when + * // you create Connection handler. + * iCCHHandler = CCchUiCchHandler::NewL(); + * iSpsHandler = CCchUiSpsHandler::NewL(); + * iConnectionHandler = CCchUiConnectionHandler::NewL( + * *iCCHHandler, *iSpsHandler ); + * @endcode + * + * @lib cchui.lib + * @since S60 5.0 + */ +NONSHARABLE_CLASS( CCchUiConnectionHandler ): public CBase + { +public: + + /** + * Two-phased constructor. + * + * @param aCchUiCchHandler CCH handler reference. + * @param aSpsHandler Service settings handler reference. + */ + static CCchUiConnectionHandler* NewL( + CCchUiCchHandler& aCchUiCchHandler, + CCchUiSpsHandler& aSpsHandler ); + + /** + * Two-phased constructor. + * + * @param aCchUiCchHandler CCH handler reference. + * @param aSpsHandler Service settings handler reference. + */ + static CCchUiConnectionHandler* NewLC( + CCchUiCchHandler& aCchUiCchHandler, + CCchUiSpsHandler& aSpsHandler ); + + /** + * Destructor. + */ + virtual ~CCchUiConnectionHandler(); + + + /** + * Displays a dialog to select one wlan access point from all + * available and adds access point to snap (creates snap if + * it doesn't exist). + * + * @since S60 5.0 + * @param aServiceId Service id. + * @param aSnapId Snap id of the service. Snap is verified before use. + * @param aServiceName Service name (used as snap name if needed) + */ + void SearchAccessPointsL( + TUint aServiceId, + TUint32 aSnapId, + const TDesC& aServiceName ); + + /** + * Copies iap from specific SNAP to another. + * + * @since S60 5.0 + * @param aServiceId service id + * @param aServiceName service name + * @param aSourceIap source IAP + * @param aTargetSnap target SNAP + */ + void CopyIapToServiceSnapL( + TUint aServiceId, + const TDesC& aServiceName, + TUint32 aSourceIap, + TUint32 aTargetSnap ); + + /** + * Removes connection from specific service´s SNAP. + * + * @since S60 5.0 + * @param aServiceName service´s name + * @param aIapId access point id to be removed + */ + void RemoveConnectionL( const TDesC& aServiceName, TInt aIapId ); + + /** + * Returns ETrue if wlan search (query) is ongoing. + * + * @since S60 5.0 + * @return ETrue if wlan search ongoing. + */ + TBool SearchWlanOngoing(); + +private: + + CCchUiConnectionHandler( + CCchUiCchHandler& aCchUiCchHandler, + CCchUiSpsHandler& aSpsHandler ); + + void ConstructL(); + + /** + * Checks if connection method already exists. + * + * @since S60 5.0 + * @param aDestination Target destination. + * @param aSsid SSID of the connection method. + * @param aSecurityMode Security mode of the candidate. + * @param aAlreadyExists If access point already exists, this is ETrue. + * @param aHidden Is candidate hidden or not. + * @return TInt Iap id of the new connection method or KErrNotFound. + */ + TInt ConnectionMethodAlreadyExistsL( + RCmDestinationExt& aDestination, + const TDesC& aSsid, + CMManager::TWlanSecMode aSecurityMode, + TBool& aAlreadyExists, + TBool aHidden ); + + /** + * Checks if connection method already exists. + * + * @since S60 9.2 + * @param aIapId internet accespoint ID. + * @param aTargetSnap target destination. + * @return ETrue if exists. + */ + TBool ConnectionMethodAlreadyExistsL( + TUint32 aIapId, RCmDestinationExt& aTargetSnap ) const; + + /** + * Adds new connection method to snap. + * + * @since S60 5.0 + * @param aDestination Target destination. + * @param aSsid SSID of the connection method. + * @param aSecurityMode Security mode of the connection method. + * @param aAlreadyExists If access point already exists, this is ETrue. + * @param aSetHidden Set iap hidden. + * @return TInt Iap id of the new connection method or old + * if already existed. + */ + TInt AddNewConnectionMethodL( + RCmDestinationExt& aDestination, + const TDesC& aSsid, + TWlanConnectionSecurityMode aSecurityMode, + TBool& aAlreadyExists, + TBool aSetHidden ); + + /** + * Saves security settings to created connection method. + * + * @since S60 5.0 + * @param aSecMode Security mode. + * @param aKey Key. + * @param aHex Use hex. + * @param aIapId Iap id. + */ + void SaveSecuritySettingsL( + const TWlanConnectionSecurityMode aSecMode, + const HBufC* aKey, + const TBool aHex, + const TUint32 aIapId ); + + /** + * Sets specific SNAP in use for specific service. + * + * @since S60 5.0 + * @param aServiceId Service id of the service to be handled. + * @param aSNAPId Snap id to set. + */ + void SetSnapToUseL( + TUint aServiceId, + TUint32 aSNAPId ); + + /** + * Creates SNAP for service. Ownership is passed. + * + * @since S60 5.0 + * @param aServiceName service name + * @return Created destination, ownership is passed. + */ + RCmDestinationExt CreateServiceSnapL( + const TDesC& aServiceName ); + +private: // data + + /** + * Reference to CCH handler. + * Not own. + */ + CCchUiCchHandler& iCCHHandler; + + /** + * Reference to service settings handler. + * Not own. + */ + CCchUiSpsHandler& iSpsHandler; + + /** + * Pointer to connection ui utilities. + * Own. + */ + CConnectionUiUtilities* iConnUiUtils; + + /** + * Handle to connection method manager. + * Own. + */ + RCmManagerExt iCmManagerExt; + + /** + * Handle to connection monitor. Required to resolve hidden/public status. + * Own. + */ + RConnectionMonitor iConnMon; + + /** + * Flag for determining if search wlan search (query) is ongoing + */ + TBool iSearchWlanOngoing; + + CCHUI_UNIT_TEST( UT_CchUi ) + }; + +#endif // C_CCCHUICONNECTIONHANDLER_H