wlanutilities/wpswizard/src/wpswizardstepfour_p.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 21:36:44 +0300
changeset 56 de27cc8389dd
parent 46 2fbd1d709fe7
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* 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 "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: 
* WPS Wizard Page: Step 4 progress bar display
*/

//System Includes

//User Includes
#include "wpswizard.h"
#include "wpswizardstepfour_p.h"
#include "cwpsactiverunner.h"

// Trace includes

#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "wpswizardstepfour_pTraces.h"
#endif

// External function prototypes

// Local constants


/*!
   \class WpsPageStepFourPrivate
   \brief Private implementation of wps wizard page for step four. 
 */
// ======== LOCAL FUNCTIONS ========

// ======== MEMBER FUNCTIONS ========

/*!
   Constructor for WPS page four
   
   @param [in] WpsPageStepFour* Pointer to the public/Ui class 
 */

WpsPageStepFourPrivate::WpsPageStepFourPrivate(WpsPageStepFour* pageStepFour) :
    mWpsActiveRunner(NULL), 
    q_ptr(pageStepFour)
{
    OstTraceFunctionEntry1(WPSPAGESTEPFOURPRIVATE_WPSPAGESTEPFOURPRIVATE_ENTRY, this);
    
    // start the framework.
    CWpsActiveRunner* runner = NULL;
    QT_TRAP_THROWING(runner = CWpsActiveRunner::NewL(*this));
    mWpsActiveRunner.reset(runner);
    
    OstTraceFunctionExit1(WPSPAGESTEPFOURPRIVATE_WPSPAGESTEPFOURPRIVATE_EXIT, this);
}

/*!
   Destructor
 */
WpsPageStepFourPrivate::~WpsPageStepFourPrivate()
{
    OstTraceFunctionEntry1(DUP1_WPSPAGESTEPFOURPRIVATE_WPSPAGESTEPFOURPRIVATE_ENTRY, this);
    OstTraceFunctionExit1(DUP1_WPSPAGESTEPFOURPRIVATE_WPSPAGESTEPFOURPRIVATE_EXIT, this);
}

/*!
   This method will initiate the WPS setup functionality.
   
   @param [in] ssid name of the network which supports wps
   @param [in] pin pin number to be used for WPS negotiating.
 */
void WpsPageStepFourPrivate::StartSetup(QString ssid, int pin)
{
    OstTraceFunctionEntry1(WPSPAGESTEPFOURPRIVATE_STARTSETUP_ENTRY, this);
    
    TPtrC ptrName(reinterpret_cast<const TText*> (ssid.constData()));

    RBuf8 ssidName;
    QT_TRAP_THROWING(ssidName.CreateL(ptrName.Length()));
    ssidName.Copy(ptrName);

    mWpsActiveRunner->StartSetup(ssidName, pin);
    ssidName.Close();
    
    OstTraceFunctionExit1(WPSPAGESTEPFOURPRIVATE_STARTSETUP_EXIT, this);
}

/*!
   CallBack informing the completion of the WPS setup.
   
   @param [in] aCredentials An array of credentials from the remote AP
   @param [in] aError integer variable indicating result of the operation
 */
void WpsPageStepFourPrivate::WpsActiveRunnerStopped(
    QList<TWlanProtectedSetupCredentialAttribute>& aCredentials, 
    TInt aError)
{
    OstTraceFunctionEntry1(WPSPAGESTEPFOURPRIVATE_WPSACTIVERUNNERSTOPPED_ENTRY, this);

    // mWpsErrorCode = aError;
    if (aError == KErrNone) {
        q_ptr->setCredentials(aCredentials, aCredentials.count());
    } else if (aError == KErrCancel) {
        // operation was cancelled 
    } else {
        OstTrace1( 
            TRACE_ERROR, 
            WPSPAGESTEPFOURPRIVATE_WPSACTIVERUNNERSTOPPED_ERROR, 
            "WpsPageStepFourPrivate::WpsActiveRunnerStopped;Error=%d", 
            aError);
        
        q_ptr->handleError(aError);
    }
    
    OstTraceFunctionExit1(WPSPAGESTEPFOURPRIVATE_WPSACTIVERUNNERSTOPPED_EXIT, this);
}

/*!
   To cancel the ongoing WPS setup implementation.
 */
void WpsPageStepFourPrivate::Cancel()
{
    OstTraceFunctionEntry1(WPSPAGESTEPFOURPRIVATE_CANCEL_ENTRY, this);
    
    mWpsActiveRunner->DoCancel();
    
    OstTraceFunctionExit1(WPSPAGESTEPFOURPRIVATE_CANCEL_EXIT, this);
}