wlanutilities/wpswizard/src/wpswizardstepfour_p.cpp
author hgs
Thu, 24 Jun 2010 10:49:51 +0300
changeset 39 7b3e49e4608a
child 53 bdc64aa9b954
permissions -rw-r--r--
201025

/*
 * 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;
    ssidName.Create(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 );
}