--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/inc/wlmplatform.h Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,265 @@
+/*
+* Copyright (c) 2002-2006 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: Contains the class for handling platform-specific functionality.
+*
+*/
+
+
+#ifndef WLMPLATFORM_H
+#define WLMPLATFORM_H
+
+#include "wlmclientserver.h"
+#include "wlandevicesettings.h"
+#include "wlmsystemnotify.h"
+#include "wlansystemtimehandler.h"
+#include "am_platform_libraries.h"
+
+class CWlmPlatformData;
+
+/**
+ * Possible values for scan types.
+ */
+enum TWLMScanType
+ {
+ EWLMScanNotAllowed,
+ EWLMScanForcedPassive,
+ EWLMScanForcedActive,
+ EWLMScanAsRequested
+ };
+
+/**
+* Callback interface used by the platform-specific functionality.
+* These callbacks are implemented by the engine.
+* @lib wlmplatform.dll
+* @since Series 60 3.0
+*/
+class MWlmPlatformCallback
+ {
+ public: // Methods
+
+ /**
+ * Get the current connection state.
+ * @return Current driver state.
+ */
+ virtual TWlanConnectionState GetCurrentState() = 0;
+
+ /**
+ * Send an indication to request data pipe disconnection.
+ *
+ * Calls ReleaseComplete() directly if data pipe isn't
+ * connected.
+ */
+ virtual void ReleaseRequest() = 0;
+
+ /**
+ * Enable WLAN after it has been disabled by a
+ * system mode change.
+ */
+ virtual void EnableWlan() = 0;
+
+ /**
+ * BT connection has been established.
+ */
+ virtual void BtConnectionEstablished() = 0;
+
+ /**
+ * BT connection has been disconnected.
+ */
+ virtual void BtConnectionDisabled() = 0;
+
+ /**
+ * System startup has been completed.
+ */
+ virtual void StartupComplete() = 0;
+
+ /**
+ * Emergency call was done during startup and now it has completed.
+ * @param aStartupCompleted Is the startup already completed
+ */
+ virtual void EmergencyCallComplete( TBool aStartupCompleted ) = 0;
+
+ /**
+ * User has changed the time and therefore WLAN region cache information
+ * is not valid anymore.
+ */
+ virtual void SystemTimeChanged() = 0;
+
+ /**
+ * WLAN region cache is always cleared after defined time.
+ */
+ virtual void ClearRegionCache() = 0;
+
+ };
+
+/**
+* Class for handling platform specific functionality.
+* @lib wlmplatform.dll
+* @since Series 60 3.0
+*/
+NONSHARABLE_CLASS( CWlmPlatform ) : public CBase, public MWlmSystemNotify, public MWlanSystemTimeCallback
+ {
+ public: // Methods
+
+ // Constructors and destructor
+
+ /**
+ * Static constructor.
+ * @param aCallback Reference to the platform callback object.
+ * @return Pointer to created object.
+ */
+ IMPORT_C static CWlmPlatform* NewL(
+ MWlmPlatformCallback& aCallback );
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CWlmPlatform();
+
+ // Methods from base classes
+
+ /**
+ * Do all initilizations that could not
+ * be done in construction phase because they require callbacks.
+ */
+ IMPORT_C void Initialize();
+
+ /**
+ * Get the type of scan allowed.
+ * @return Type of scan allowed.
+ */
+ IMPORT_C TWLMScanType GetScanType();
+
+ /**
+ * Check whether WLAN is disabled.
+ * @return Whether WLAN is disabled.
+ */
+ IMPORT_C TBool IsWlanDisabled();
+
+ /**
+ * Get the current system mode.
+ * @return Current system mode.
+ */
+ IMPORT_C TWlanSystemMode GetCurrentSystemMode();
+
+ /**
+ * Set the status of WLAN icon on cover display.
+ * @param aStatus The WLAN icon status.
+ * @return A Symbian error code.
+ */
+ IMPORT_C TInt SetIconState( TWlmIconStatus aStatus );
+
+ /**
+ * Returns MCC of the current operator.
+ * @param aCountryCode MCC.
+ */
+ IMPORT_C void GetCurrentOperatorMccL( TUint& aCountryCode );
+
+ /**
+ * Publishes the MAC address to other applications.
+ * @param aMacAddr The MAC address.
+ * @return A Symbian error code.
+ */
+ IMPORT_C TInt PublishMacAddress( TMacAddress& aMacAddr );
+
+ /**
+ * Start timer to get indication when user has changed the time.
+ */
+ IMPORT_C void InitializeSystemTimeHandler();
+
+ protected: // Methods
+
+ // Methods from base classes
+
+ /**
+ * (From MWlmSystemNotify) System Mode has changed.
+ * @param aOldMode Old System Mode.
+ * @param aNewMode New System Mode.
+ */
+ void SystemModeChanged(
+ TWlanSystemMode aOldMode,
+ TWlanSystemMode aNewMode );
+
+ /**
+ * (From MWlmSystemNotify) Emergency call has started, WLAN is forced to be enabled.
+ */
+ void EmergencyCallEstablished();
+
+ /**
+ * (From MWlmSystemNotify) Emergency call has ended, WLAN is not forced to be enabled anymore.
+ * @param aNewMode New System Mode
+ */
+ void EmergencyCallCompleted( TWlanSystemMode aNewMode );
+
+ /**
+ * (From MWlmSystemNotify) BT connection has been established.
+ */
+ void BtConnectionEstablished();
+
+ /**
+ * (From MWlmSystemNotify) BT connection has been disconnected.
+ */
+ void BtConnectionDisabled();
+
+ /**
+ * (From MWlanSystemTimeCallback)
+ * User has changed the time and therefore cached WLAN region is not valid anymore.
+ */
+ void OnSystemTimeChange();
+
+ /**
+ * (From MWlanSystemTimeCallback)
+ * WLAN region cache is forced to be cleared after defined time.
+ */
+ void OnCacheClearTimerExpiration();
+
+ private: //Methods
+
+ /**
+ * C++ default constructor.
+ * @param aCallback Pointer the platform callback object.
+ */
+ CWlmPlatform( MWlmPlatformCallback& aCallback );
+
+ /**
+ * Symbian 2nd phase constructor.
+ */
+ void ConstructL();
+
+ private: // Data
+
+ /** Interface for callbacks to common functionality. */
+ MWlmPlatformCallback& iCallback;
+
+ /** Current states of various system mode settings. */
+ TWlanSystemMode iCurrentSystemMode;
+
+ /** Interface to PubSub/CenRep. */
+ CWlmPlatformData* iPlatformData;
+
+ /**
+ * Information whether WLAN connection existed before emergency call was made.
+ * If WLAN connection did not exist before emergency call and WLAN connection was
+ * established in Offline mode for the emergency call, then after the emergency call
+ * the WLAN connection must be released. */
+ TBool iWlanConnectedBeforeEmergencyCall;
+
+ /** Interface to monitor system time changes. */
+ CWlanSystemTimeHandler* iSystemTimeHandler;
+
+ /** Interface to monitor when region cache needs to be cleared. */
+ CWlanPeriodicCacheClearingHandler* iPeriodicCacheClearingHandler;
+
+ };
+
+#endif // WLMPLATFORM_H