wlanutilities/wlanqtutilities/wrapper/inc/wlanqtutilscmmwrapper_s60_p.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 16 Apr 2010 16:07:56 +0300
changeset 19 10810c91db26
permissions -rw-r--r--
Revision: 201011 Kit: 201015

/*
 * Copyright (c) 2009 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:
 */

#ifndef WLANQTUTILSCMMWRAPPER_S60_P_H_
#define WLANQTUTILSCMMWRAPPER_S60_P_H_

// INCLUDES
#include <cmmanagerext.h>
#include "wlanqtutilscommon.h"

QT_BEGIN_NAMESPACE

//definitions taken from cmpluginwlandef.h and cmpluginpacketdatadef.h
const TUint KUidPacketDataBearerType = 0x10207378;

class WlanQtUtilsIap;
class WlanQtUtilsWlanIap;

// CLASS DECLARATION

/**
 * CmmWrapperPrivate class.
 */
class CmmWrapperPrivate
    {

public:

    /**
     * Default constructor
     */
    CmmWrapperPrivate(CmmWrapper *wrapper);

    /**
     * Destructor
     */
    ~CmmWrapperPrivate();

public:
    // New functions    

    /**
     * Fetches IAPs from CMM
     * 
     * @iapList, list of IAPs
     * @return error code
     */
    int fetchIaps(QList<WlanQtUtilsIap*> &iapList);

    /**
     * Creates a new WLAN IAP through CMM
     * 
     * @aWlanAp WLAN parameters to store in IAP
     * @return Created IAP, NULL in error cases
     */
    WlanQtUtilsWlanIap *createWlanIap(const WlanQtUtilsWlanAp *aWlanAp);
    
    /**
     * Move IAP to the Internet SNAP
     * 
     * @param[in] iapId Which IAP to move
     */
    void moveIapToInternetSnap(TInt32 aIapId);
        
private:

    /**
     * Fetches IAPs from CMM, leaves in error cases
     * 
     * @iapList, list of IAPs
     */
    void fetchIapsL(QList<WlanQtUtilsIap*> &iapList);
    
    /**
     * Creates a new WLAN IAP through CMM, leaves in error cases
     * 
     * @aWlanAp WLAN parameters to store in IAP
     * @return Created IAP
     */
    WlanQtUtilsWlanIap *createWlanIapL(const WlanQtUtilsWlanAp *aWlanAp);

    /**
     * Move IAP to the Internet SNAP, leaves in error cases
     * 
     * @param[in] iapId Which IAP to move
     */
    void moveIapToInternetSnapL(TInt32 aIapId);
        
    /**
     * Fetches IAPs of the given SNAP from CMM
     * 
     * @param[in] aSnapId ID of the SNAP whose IAPS are requested
     * @param[out] aSnapsIapList Where to store IAPs
     * @return Error code
     */    
    int getIapListFromSnap(
        TUint32 aSnapId,
        QList<WlanQtUtilsIap*>& aSnapsIapList);
    
    /**
     * Fetches IAP information of the given ConnectionMethod from CMM
     * 
     * @param[in] aConnectionMethod Where to read info
     * @return Created IAP
     */    
    WlanQtUtilsIap *getIapInfoL(
        RCmConnectionMethodExt aConnectionMethod);
    
    /**
     * Maps CMManager's WLAN security mode into WlanQtUtilsWlanSecMode.
     * 
     * @aSecModeFromCmManager security mode read from CMManager
     * @return: Mapped security mode to be used in Wlan Qt Utilities.
     */
    WlanQtUtilsWlanSecMode cmm2WlanQtUtilsSecModeMap(int aSecModeFromCmManager);

    /**
     * Maps WlanQtUtilsWlanSecMode into CMManager's WLAN security mode.
     * 
     * @aWlanQtUtilsSecMode: Wlan Qt Utilities' WLAN security mode 
     * @return: Mapped CMManager's WLAN security mode.
     */
    int wlanQtUtils2CmmSecModeMap(WlanQtUtilsWlanSecMode aWlanQtUtilsSecMode);

private:
    // Data

    /**
     * q_ptr pointer to CmmWrapper
     * Owned by CmmWrapperPrivate object, instantiated in
     * constructor.
     */
    CmmWrapper *q_ptr;

    RCmManagerExt iCmManagerExt;

    };

QT_END_NAMESPACE

#endif /* WLANQTUTILSCMMWRAPPER_S60_P_H_ */

// End of file