diff -r 000000000000 -r 56b72877c1cb hotspotfw/hsclient/inc/hssmgmtimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspotfw/hsclient/inc/hssmgmtimpl.h Thu Dec 17 09:20:28 2009 +0200 @@ -0,0 +1,238 @@ +/* +* Copyright (c) 2006-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: ECom interface implementation definition +* +*/ + + + +#ifndef HSSMGMTIMPL_H +#define HSSMGMTIMPL_H + +#include "hssinterface.h" +#include "hssscanlist.h" +#include "hssmgmtclient.h" +#include "hssiapsettings.h" + +/** +* Implementation for MHssMgmtInterface interface. +* +* This class uses services from RHssInterface class to implement +* most of the required functionality. +*/ +class CHssMgmtImpl : public CHssMgmtClient, public MHssSrvNotifications + { + public: // Methods + + // Constructors and destructor + + /** + * Static constructor. + */ + static CHssMgmtImpl* NewL(); + + /** + * Destructor. + */ + virtual ~CHssMgmtImpl(); + + // Methods from base classes + + /** + * (From MHssMgmtInterface) Activate the notification service. + * + * After the client has enabled the notification service, it can + * receive asynchronous notifications from the server. + * @param aCallback The class that implements the callback interface. + */ + virtual void ActivateNotificationsL( MHssMgmtNotifications& aCallback ); + + /** + * (From MHssMgmtInterface) Cancel the notification service. + */ + virtual void CancelNotifications(); + + /** + * (From MHssMgmtInterface) Perform a scan and return the detected WLAN networks. + * @param aResults Results of the scan. + * @return KErrNone if successful, otherwise one of the system-wide + * error codes. + */ + virtual TInt GetScanResults( CHssMgmtScanInfo& aResults ); + + /** + * (From MHssMgmtInterface) Create and Protect IAP, register Client. + * @param aUid UID of the client. + * @param aIapName Name of the IAP to be registered. + * @param aWaitNote Indication of UI authentication, if in use TRUE, else FALSE. + * @return On successful completion returns IAP ID, otherwise return value is 0. + */ + virtual TUint Register( const TUid aUid, + const TDesC& aIapName, + const TUint aWaitNote ); + + /** + * (From MHssMgmtInterface) Delete IAP and unregister Client. + * + * @param aUid UID of the client. + * @param aIapId ID of the IAP. + * @return KErrNone, if IAP removal successful; + * otherwise one of the other system-wide error codes. + */ + virtual TInt UnRegister( const TUid aUid, + const TUint aIapId, + const TUint aNetworkId ); + + /** + * (From MHssMgmtInterface) Change IAP settings. + * + * @param aIapId ID of the IAP. + * @param aSettings Settings of the IAP. + * @return KErrNone if HotSpot FW was able to receive message; + * otherwise one of the other system-wide error codes. + */ + virtual TInt ChangeSettings( const TUint aIapId, + const THssIapSettings &aSettings ); + + /** + * (From MHssMgmtInterface) Associate IAP with network. + * + * @param aIapId ID of the IAP. + * @return KErrNone if HotSpot FW was able to receive message; + * otherwise one of the other system-wide error codes. + */ + virtual TInt Join( const TUint aIapId ); + + /** + * (From MHssMgmtInterface) Cancel IAP association. + * + * @param aIapId ID of the IAP. + * @return KErrNone if HotSpot FW was able to receive message; + * otherwise one of the other system-wide error codes. + */ + virtual TInt CancelStart( const TUint aIapId ); + + /** + * (From MHssMgmtInterface) Stop associating IAP. + * + * @param aIapId ID of the IAP. + * @return KErrNone if HotSpot FW was able to receive message; + * otherwise one of the other system-wide error codes. + */ + virtual TInt Stop( const TUint aIapId ); + + /** + * (From MHssMgmtInterface) Inform login completion. + * + * @param aIapId, ID of the IAP. + * @param aStatus, Result of login procedure. + * @return KErrNone if HotSpot FW was able to receive message; + * otherwise one of the other system-wide error codes. + */ + virtual TInt LoginComplete( const TUint aIapId, const TInt aStatus ); + + /** + * (From MHssMgmtInterface) Inform logout completion. + * + * @param aIapId ID of the IAP. + * @return KErrNone if HotSpot FW was able to receive message; + * otherwise one of the other system-wide error codes. + */ + virtual TInt LogoutComplete( const TUint aIapId ); + + /** + * Check status of BackgroundScan. + * @return 0 if off, otherwice number as scan interval. + */ + virtual TUint32 CheckBackgroundScan(); + + /** + * Get the BSSID of the currently connected AP. + * @param aBssId, MAC address of a connection + * @return KErrNone if successful, + * otherwise one of the other system-wide error codes. + */ + virtual TInt GetConnectionBssid( THssBssid& aBssId ); + + /** + * Add an SSID list to the given IAP. + * @param aIapId, IAP ID given. + * @param aSsidList, SSID list to add to the IAP. + * @return KErrNone if successful, + * otherwise one of the other system-wide error codes. + */ + virtual TInt AddIapSsidList( + TUint aIapId, + const CArrayFixFlat& aSsidList ); + + /** + * Set login and logout timers for this client. + * @param aClientUid, Client's UID: clients may have own timer values, + * @param aLoginTimerValue, login timer value, + * @param aLogoutTimerValue, logout timer value. + * @return KErrNone if successful, + * otherwise one of the other system-wide error codes. + */ + virtual TInt SetTimerValues( + TUid aClientUid, + TUint aLoginTimerValue, + TUint aLogoutTimerValue ); + + /** + * Gets all Iaps of client + * @param aUId, UID of client + * @param aIapIdArray, Array for client's Iaps + * otherwise one of the other system-wide error codes. + */ + virtual TInt GetClientIaps( const TUid aUid, RArray& aIapIdArray ); + + protected: // Methods + + /** + * (From MHssNotify) New networks have been detected during scan. + * + * @param aIapId ID of the IAP. + */ + virtual void NewNetworksDetected( TUint aIapId ); + + /** + * (From MHssNotify) One or more networks have been lost since the last scan. + * + * @param aIapId ID of the IAP. + */ + virtual void OldNetworksLost( TUint aIapId ); + + private: // Methods + + /** + * C++ default constructor. + */ + CHssMgmtImpl(); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL(); + + private: // Data + + // Interface to RWLMServer + RHssInterface iServer; + + // Client notification callback + MHssMgmtNotifications* iClientNotification; + }; + + +#endif // HSSMGMTIMPL_H