wlanutilities/wpswizard/src/cwpsactiverunner.cpp
branchGCC_SURGE
changeset 47 b3d8f88532b7
parent 19 10810c91db26
parent 46 2fbd1d709fe7
--- a/wlanutilities/wpswizard/src/cwpsactiverunner.cpp	Fri Jun 11 16:27:29 2010 +0100
+++ b/wlanutilities/wpswizard/src/cwpsactiverunner.cpp	Thu Jul 22 16:44:32 2010 +0100
@@ -2,7 +2,7 @@
  * Copyright (c) 2010 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"
+ * 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".
  *
@@ -12,129 +12,147 @@
  * Contributors:
  *
  * Description: Implementation of middleware wrapper class
- *   
+ *
  *
  */
-
+// System includes
+#include <wlanmgmtcommon.h>
+#include <e32math.h>
 
 // User includes
 #include "cwpsactiverunner.h"
-#include "wlanmgmtcommon.h"
+
+// External function prototypes
 
-//Need to check this.
-const TInt KArrayGranularity = 4;
+//Constants
+static const TInt KArrayGranularity = 4;
+static const TInt KDefaultPinLength = 10;
+
+// Trace includes
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cwpsactiverunnerTraces.h"
+#endif
 
 /*!
  \class CWpsActiveRunner
- \brief CWpsActiveRunner is a wrapper class wlan Mgmt engine interface
+ \brief CWpsActiveRunner is a wrapper class wlan Mgmt engine interface.
+ The wrapper class for wlan management engine calls
  */
 
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+/*!
+ * Creates the instance of active runner which encapsulates the wlan mgmt
+ * interface middleware calls
+ *
+ *
+ * \param MWpsActiveRunnerCallback[in] call back interface to notify the
+ *      completion of the middleware calls
+ */
+CWpsActiveRunner* CWpsActiveRunner::NewL(MWpsActiveRunnerCallback& aObserver)
+{
+    OstTraceFunctionEntry0( CWPSACTIVERUNNER_NEWL_ENTRY );
+    CWpsActiveRunner* self = new (ELeave) CWpsActiveRunner(aObserver);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    OstTraceFunctionExit0( CWPSACTIVERUNNER_NEWL_EXIT );
+    return self;
+}
 
 /*!
  * Creates the instance of active runner which encapsulates the wlan mgmt
  * interface middleware calls
- * 
- * 
- * \param MWpsActiveRunnerCallback call back interface to notify the completion of the middleware calls
- */
-CWpsActiveRunner* CWpsActiveRunner::NewL(MWpsActiveRunnerCallback& aObserver)
-{
-    CWpsActiveRunner* self = new (ELeave) CWpsActiveRunner( aObserver );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-}
-/*!
- * Creates the instance of active runner which encapsulates the wlan mgmt
- * interface middleware calls
- * 
- * 
- * \param MWpsActiveRunnerCallback call back interface to notify the completion of the middleware calls
+ *
+ *
+ * \param MWpsActiveRunnerCallback[in] call back interface to notify the
+ *      completion of the middleware calls
  */
 CWpsActiveRunner::CWpsActiveRunner(MWpsActiveRunnerCallback& aObserver) :
-    CActive(EPriorityStandard), iObserver(aObserver)
+    CActive(EPriorityStandard),
+    iObserver(aObserver),
+    isCancelTriggered(false),
+    iWLANMgmtClient(NULL),
+    iIapParametersArray(NULL)
 {
-#ifdef __arm
-    iIapParametersArray = NULL;
-    iWLANMgmtClient = NULL;
-#endif
+    OstTraceFunctionEntry1( CWPSACTIVERUNNER_CWPSACTIVERUNNER_ENTRY, this );
+    OstTraceFunctionExit1( CWPSACTIVERUNNER_CWPSACTIVERUNNER_EXIT, this );
 }
 
 /*!
- * Initializes the member variables
- * 
- * 
- * \return integer error code indicating the result of the operation
+ * ConstructL, Two phased constructor.
+ *
  */
-void CWpsActiveRunner::InitL()
-{
-    CActiveScheduler::Add(this);
-#ifdef __arm
-    InitializeL();
-#else
-    iTimer.CreateLocal();
-#endif
-
-}
-
 void CWpsActiveRunner::ConstructL()
 {
-    InitL();
+    OstTraceFunctionEntry1( CWPSACTIVERUNNER_CONSTRUCTL_ENTRY, this );
+
+    CActiveScheduler::Add(this);
+    InitializeL();
+    OstTraceFunctionExit1( CWPSACTIVERUNNER_CONSTRUCTL_EXIT, this );
 }
 
 /*!
  * Initializes the member variables for making the middleware calls
- * 
+ *
  */
 
 void CWpsActiveRunner::InitializeL()
 {
-#ifdef __arm    
-    if (!iWLANMgmtClient)
-        iWLANMgmtClient = CWlanMgmtClient::NewL();
-    if (!iIapParametersArray)
-        iIapParametersArray = new (ELeave) CArrayFixSeg<
-    TWlanProtectedSetupCredentialAttribute> (KArrayGranularity);
-#endif    
+    OstTraceFunctionEntry1( CWPSACTIVERUNNER_INITIALIZEL_ENTRY, this );
+    iWLANMgmtClient = CWlanMgmtClient::NewL();
+    iIapParametersArray = new (ELeave) CArrayFixSeg<
+        TWlanProtectedSetupCredentialAttribute> (KArrayGranularity);
+    
+    OstTraceFunctionExit1( CWPSACTIVERUNNER_INITIALIZEL_EXIT, this );
 }
 
 /*!
  * Destructor
- * 
+ *
  */
-
 CWpsActiveRunner::~CWpsActiveRunner()
 {
+    OstTraceFunctionEntry0( DUP1_CWPSACTIVERUNNER_CWPSACTIVERUNNER_ENTRY );
     Cancel();
-#ifdef __arm
     delete iWLANMgmtClient;
     delete iIapParametersArray;
-#else
-    iTimer.Cancel();
-    iTimer.Close();
-#endif
+    OstTraceFunctionExit0( DUP1_CWPSACTIVERUNNER_CWPSACTIVERUNNER_EXIT );
 }
 
 /*!
  * Initiates the call to the middleware
+ *
+ * \param aSsid[in] The network ssid to which we have to connect
+ * \param aPin[in] The pin to be used for WPS negotiating
  */
 void CWpsActiveRunner::StartSetup(RBuf8& aSsid, int aPin)
 {
-#ifdef __arm
+    OstTraceFunctionEntry1( CWPSACTIVERUNNER_STARTSETUP_ENTRY, this );
     TWlanSsid ssid;
     TWlanWpsPin pin;
 
+    isCancelTriggered = false;
     ssid.Copy(aSsid);
-    TBuf8<32> pinCode;
-    pinCode.AppendNum(aPin);
+    TBuf8<KDefaultPinLength> pinCode;
+
+    if (aPin == 0) {
+        pinCode.AppendFill('0', 8);
+    }
+    else {
+        pinCode.AppendNum(aPin);
+    }
+
     pin.Copy(pinCode);
-    iWLANMgmtClient->RunProtectedSetup(iStatus,ssid,pin,*iIapParametersArray);
-#else
-    iTimer.After(iStatus, 4 * 1000000);
-#endif
+
+    iWLANMgmtClient->RunProtectedSetup(iStatus, ssid, pin, *iIapParametersArray);
+
     SetActive();
 
+    OstTraceFunctionExit1( CWPSACTIVERUNNER_STARTSETUP_EXIT, this );
 }
 
 /*!
@@ -142,29 +160,31 @@
  */
 void CWpsActiveRunner::RunL()
 {
+    OstTraceFunctionEntry1( CWPSACTIVERUNNER_RUNL_ENTRY, this );
+
     TInt completionCode = iStatus.Int();
     QList<TWlanProtectedSetupCredentialAttribute> credentials;
 
-    if (completionCode < KErrNone) {
-        //Raise Error
-        iObserver.WpsActiveRunnerStopped(credentials, completionCode);
-    }
-    else {
-#ifdef __arm
-        TInt len = iIapParametersArray->Length();
-        TInt count;
-        for(count=0;count<iIapParametersArray->Count();count++)
-        {
-            TWlanProtectedSetupCredentialAttribute attr =(*iIapParametersArray)[count];
-            credentials.append(attr);
+    if(!isCancelTriggered) {
+
+        if (completionCode < KErrNone) {
+            //Raise Error
+        QT_TRYCATCH_LEAVING(iObserver.WpsActiveRunnerStopped(credentials, completionCode));
         }
-        iObserver.WpsActiveRunnerStopped(credentials,completionCode);
-#else
+        else {
+            TInt len = iIapParametersArray->Length();
+            TInt count;
+            for(count=0;count<iIapParametersArray->Count();count++)
+                {
+                TWlanProtectedSetupCredentialAttribute attr =(*iIapParametersArray)[count];
+                credentials.append(attr);
+                }
+            QT_TRYCATCH_LEAVING(iObserver.WpsActiveRunnerStopped(credentials,completionCode));
 
-        RunProtectedSetup_Stub();
-#endif
+        }
     }
 
+    OstTraceFunctionExit1( CWPSACTIVERUNNER_RUNL_EXIT, this );
 }
 
 /*!
@@ -172,12 +192,13 @@
  */
 void CWpsActiveRunner::DoCancel()
 {
-#ifdef __arm    
+    OstTraceFunctionEntry1( CWPSACTIVERUNNER_DOCANCEL_ENTRY, this );
+    isCancelTriggered = true;
     if(iWLANMgmtClient)
-    iWLANMgmtClient->CancelProtectedSetup();
-#else
-    iTimer.Cancel();
-#endif
+        {
+        iWLANMgmtClient->CancelProtectedSetup();
+        }
+    OstTraceFunctionExit1( CWPSACTIVERUNNER_DOCANCEL_EXIT, this );
 }
 
 /*!
@@ -185,41 +206,18 @@
  */
 TInt CWpsActiveRunner::RunError(TInt aError)
 {
+    OstTraceFunctionEntry1( CWPSACTIVERUNNER_RUNERROR_ENTRY, this );
+
+    OstTrace1( TRACE_ERROR, CWPSACTIVERUNNER_RUNERROR, "CWpsActiveRunner::RunError;aError=%d", aError );
+
     QList<TWlanProtectedSetupCredentialAttribute> credentials;
-#ifdef __arm    
     if(iWLANMgmtClient)
-    iWLANMgmtClient->CancelProtectedSetup();
-#else
-    iTimer.Cancel();
-#endif
+        {
+        iWLANMgmtClient->CancelProtectedSetup();
+        }
 
-    iObserver.WpsActiveRunnerStopped(credentials, aError);
+    QT_TRYCATCH_LEAVING(iObserver.WpsActiveRunnerStopped(credentials, aError));
+
+    return 0;
 }
 
-#ifndef __arm
-void CWpsActiveRunner::RunProtectedSetup_Stub()
-{
-    QList<TWlanProtectedSetupCredentialAttribute> credentials;
-    TWlanProtectedSetupCredentialAttribute attr1 = { EWlanOperatingModeInfrastructure, // iOperatingMode
-        EWlanAuthenticationModeOpen, // iAuthenticationMode
-        EWlanIapSecurityModeWpa, // iSecurityMode,
-        _L8( "STUB01" ), // iSsid
-        _L8( "" ), // iWepKey1
-        _L8( "" ), // iWepKey2
-        _L8( "" ), // iWepKey3
-        _L8( "" ), // iWepKey4
-        EWlanDefaultWepKey1, // iWepDefaultKey
-        _L8( "testtest" )
-    // iWpaPreSharedKey
-        };
-
-    TWlanProtectedSetupCredentialAttribute attr2 = { EWlanOperatingModeAdhoc,
-        EWlanAuthenticationModeOpen, EWlanIapSecurityModeWep, _L8( "STUB02" ), _L8( "12345" ),
-        _L8( "" ), _L8( "" ), _L8( "" ), EWlanDefaultWepKey1, _L8( "" ) };
-
-    credentials.append(attr1);
-    credentials.append(attr2);
-
-    iObserver.WpsActiveRunnerStopped(credentials, KErrNone);
-}
-#endif