wlanutilities/wlansniffer/aiplugin/inc/wsfactivewrappers.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:20:32 +0100
branchRCL_3
changeset 25 f28ada11abbf
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201029 Kit: 201035

/*
 * Copyright (c) 2007-2008 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:  Implementation of CWsfActiveWrappers.
 *
 */



#ifndef WSFACTIVEWRAPPERS_H
#define WSFACTIVEWRAPPERS_H

//  EXTERNAL INCLUDES
#include <e32std.h>
#include <e32base.h>

//  INTERNAL INCLUDES
#include "wsfcommon.h"
#include "wsfaicontroller.h"
#include "wsfmodel.h"

//  FORWARD DECLARATIONS
class CWsfWLANListActiveWrapper;
class CWsfRefreshScanActiveWrapper;
class CWsfDisconnectActiveWrapper;
class CWsfConnectActiveWrapper;
class CWsfLaunchAiHelperActiveWrapper;

// CLASS DECLARATION

/**
 *  Active object helper class that capsulates active wrapper classes
 *
 *  @lib wsfaiplugin.lib
 *  @since S60 v5.2
 * 
 */
class CWsfActiveWrappers : public CBase
    {
public:
    // Constructors and destructor

    /**
     * Destructor.
     * @since S60 5.2 
     */
    ~CWsfActiveWrappers();

    /**
     * Two-phased constructor.
     * @since S60 5.2  
     */
    static CWsfActiveWrappers* NewL( CWsfModel* aModel,
            TWsfAiController &aController );

    /**
     * Two-phased constructor.
     * @since S60 5.2 
     */
    static CWsfActiveWrappers* NewLC(CWsfModel* aModel,
            TWsfAiController &aController );

public:

    /**
     * Starts disconnecting 
     * @since S60 5.2     
     */
    void Disconnect();

    /**
     * Starts connecting
     * @since S60 5.2     
     * @param aIapId WLAN IAP id to connect to.
     * @param aConnectOnly ETrue if Connect selected
     * @param aPersistence Persistence property of the IAP
     */
    void Connect( TUint aIapID, TBool aConnectOnly, 
                  TWsfIapPersistence aPersistence );

    /**
     * Starts refresh scan
     * @since S60 5.2     
     */
    void RefreshScan();

    /**
     * Starts wlan list refreshing
     * @since S60 5.2   
     * @param aStarUp is this called called from plugin start up   
     */
    void RefreshWLANList( TBool aStarUp );
    
    /**
     * Starts launching of ai helper 
     * @since S60 5.2   
     * @param aWlanInfo The WlanInfo object to be passed to the helper app
     * @param aConnectOnly ETrue if we are only connecting, 
     *                     EFalse if we should also launch the browser  
     * @param aTestAccessPoint ETrue if ICT is executed, 
     *                         EFalse if ICT is not executed 
     */
    void LaunchHelperApplicationL( TWsfWlanInfo& aInfo, TBool aConnectOnly, 
                                   TBool aTestAccessPoint );

    /**
     * Returns the list of found WLANs. 
     * Ownership not passed.
     * @since S60 5.2
     * @return Array of WLANs
     */
    CWsfWlanInfoArray* GetWLANList();

    /**
     * Returns the connected wlan network 
     * @since S60 5.2
     * @return TWsfWlanInfo
     */
    TWsfWlanInfo GetConnectedWLANNetwork();

private:

    /**
     * Constructor for performing 1st stage construction
     */
    CWsfActiveWrappers();

    /**
     * Constructor for performing 2nd stage construction
     */
    void ConstructL( CWsfModel* aModel, TWsfAiController &aController );

private:
    // Data

    /**
     * Pointer to CWsfWLANListActiveWrapper
     * Own.
     */
    CWsfWLANListActiveWrapper* iWLANListActiveWrapper;

    /**
     * Pointer to CWsfRefreshScanActiveWrapper
     * Own.
     */
    CWsfRefreshScanActiveWrapper* iRefreshScanActiveWrapper;

    /**
     * Pointer to CWsfDisconnectActiveWrapper
     * Own.
     */
    CWsfDisconnectActiveWrapper* iDisconnectActiveWrapper;

    /**
     * Pointer to CWsfConnectActiveWrapper
     * Own.
     */
    CWsfConnectActiveWrapper* iConnectActiveWrapper;

    /**
     * Pointer to CWsfLaunchAiHelperActiveWrapper
     * Own.
     */
    CWsfLaunchAiHelperActiveWrapper* iLaunchAiHelperActiveWrapper;

    };

#endif // WSFACTIVEWRAPPERS_H