diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/inc/wlmnotify.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/inc/wlmnotify.h Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,238 @@ +/* +* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: Notification service for clients +* +*/ + +/* +* %version: 13 % +*/ + +#ifndef WLMNOTIFY_H +#define WLMNOTIFY_H + +#include "wlmclientserver.h" +#include "wlancontrolinterface.h" + +class RWLMServer; + +/** + * MWLMNotify specifies a callback interface for notification services. + * These virtual methods should be implemented by the client if it + * needs any notifications. + * @lib wlmserver.lib + * @since 3.0 + */ +class MWLMNotify + { + public: + /** + * Connection status has changed. + * + * @aParam aNewState specifies the new state + */ + virtual void ConnectionStateChanged( + TWlanConnectionState /*aNewState*/ ){}; + + /** + * BSSID has changed (i.e. AP handover). + * + * @aParam aNewBSSID specifies the new BSSID (access point name). + */ + virtual void BSSIDChanged( + TDesC8& /*aNewBSSID*/ ){}; + + /** + * Connection has lost. + */ + virtual void BSSLost(){}; + + /** + * Connection has regained. + */ + virtual void BSSRegained(){}; + + /** + * New networks have been detected during scan. + */ + virtual void NewNetworksDetected(){}; + + /** + * One or more networks have been lost since the last scan. + */ + virtual void OldNetworksLost(){}; + + /** + * The used transmit power has been changed. + * + * @param aPower The transmit power in mW. + */ + virtual void TransmitPowerChanged( + TUint /*aPower*/ ){}; + + /** + * Received signal strength has changed to another strength class. + * + * @param aRcpLevel specifies the rss class (normal/weak) + * @param aRcpValue specifies the actual rcp value + */ + virtual void RcpChanged( + TWlanRCPLevel /*aRcpLevel*/, + TUint /*aRcpValue*/ ){}; + + /** + * Information about the current access point after a connect/roam. + * + * @param aInfo Information about the current access point. + */ + virtual void AccessPointInfoChanged( + const TWlanAccessPointInfo& /* aInfo */ ){}; + + /** + * The status of a virtual traffic stream has changed. + * + * @param aStreamId ID of the traffic stream. + * @param aStreamStatus Status of the traffic stream. + */ + virtual void TrafficStreamStatusChanged( + TUint /* aStreamId */, + TWlanTrafficStreamStatus /* aStreamStatus */ ) {}; + + /** + * The traffic mode of an access class has changed. + * + * @param aAccessClass Access class. + * @param aMode Traffic mode of the access class. + */ + virtual void AccessClassTrafficModeChanged( + TWlmAccessClass /* aAccessClass */, + TWlmAcTrafficMode /* aMode */ ){}; + + /** + * The traffic status of an access class has changed. + * + * @param aAccessClass Access class. + * @param aStatus Traffic status of the access class. + */ + virtual void AccessClassTrafficStatusChanged( + TWlmAccessClass /* aAccessClass */, + TWlmAcTrafficStatus /* aStatus */ ){}; + + }; + +/** +* CWLMNotify offers the notification service. +* Active object that waits notifications from server. +* @lib wlmserver.lib +* @since 3.0 +*/ +NONSHARABLE_CLASS( CWLMNotify ) : public CActive + { + public: // Methods + + // Constructors and destructor + + /** + * Destructor. + */ + virtual ~CWLMNotify(); + + /** + * Create and activate notification service. + * @note This activates the notification service already. + * @param aCallback Callback interface to forward notifications to + * user process. + * @param aServer Interface to send requests to server. + * @param aNotificationMask Bitmask of notifications to activate. + * @return Pointer to a new constructed CWLMNotify object. + */ + static CWLMNotify* NewL( + MWLMNotify& aCallback, + RWLMServer& aServer, + TUint32 aNotificationMask ); + + /** + * Change the callback interface + * and activate notifications + * @param aCallback New callback interface. + * @param aNotificationMask Bitmask of notifications to activate. + */ + void Activate( + MWLMNotify& aCallback, + TUint32 aNotificationMask ); + + /** + * Sets the requests cancelled flag so that no new notification requests + * are done once current notification is complete. + */ + void SetCancelled(); + + protected: // from CActive + /** + * (From CActive) Receive notification. + */ + void RunL(); + + /** + * (From CActive) This is called by Cancel() of CActive framework. + */ + void DoCancel(); + + private: + /** + * Constructor. + * @param aCallback Callback interface to forward notifications to + * application. + * @param aServer Interface to send requests to server. + * @param aNotificationMask Bitmask of notifications to activate. + */ + CWLMNotify( + MWLMNotify& aCallback, + RWLMServer& aServer, + TUint32 aNotificationMask ); + + /** + * Second phase construction. + */ + void ConstructL(); + + /** + * Notification query loop. + */ + void WaitForNotifications(); + + private: // Members. + /** + * Callback interface to the client. Not owned by this class. + */ + MWLMNotify* iCallback; + /** + * Interface to send messages to the server + */ + RWLMServer& iServer; + /** + * Data package for return data + */ + TPckgBuf iDataPckg; + /** + * Cancel has been requested + */ + TBool iCancelRequested; + /** + * Bitmask of active notifications. + */ + TUint32 iNotificationMask; + }; + +#endif // WLMNOTIFY_H