diff -r 5fb7af913dfd -r a828660c511c wlanapitest/wlanhaitest/wlan/src/T_WlanScanInfoData.cpp --- a/wlanapitest/wlanhaitest/wlan/src/T_WlanScanInfoData.cpp Thu Aug 19 11:40:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,266 +0,0 @@ -/* -* Copyright (c) 2005-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: -* -*/ - - -#include "t_wlanscaninfodata.h" -//class CWlanScanInfo -#include -#include - -/*@{*/ -//LITs from the ini -_LIT(KSsidParam, "DEFAULT_SSID_Ssid"); -_LIT(KUid, "WlanScanUid"); -/*@}*/ - -/*@{*/ -//LIT's for the commands -_LIT(KCmdNewL, "NewL"); -_LIT(KCmdDestructor, "~"); -_LIT(KCmdInformationElement, "InformationElement"); -/*@}*/ - -/** - * Two phase constructor - * - * @leave system wide error - */ -CT_WlanScanInfoData* CT_WlanScanInfoData::NewL() - { - CT_WlanScanInfoData* ret = new(ELeave) CT_WlanScanInfoData(); - CleanupStack::PushL(ret); - ret->ConstructL(); - CleanupStack::Pop(ret); - return ret; - } - -/** - * Public destructor - */ -CT_WlanScanInfoData::~CT_WlanScanInfoData() - { - DestroyData(); - } - -/** - * Private constructor. First phase construction - */ -CT_WlanScanInfoData::CT_WlanScanInfoData() -: iData(NULL), - iScanInfoInstanceIdentifier(KNullUid) - { - } - - -/** - * Second phase construction - * - * @internalComponent - * - * @return N/A - * - * @pre None - * @post None - * - * @leave system wide error - */ -void CT_WlanScanInfoData::ConstructL() - { - } - -/** - * Return a pointer to the object that the data wraps - * - * @return pointer to the object that the data wraps - */ -TAny* CT_WlanScanInfoData::GetObject() - { - return iData; - } - - -/** - * Process a command read from the Ini file - * @param aCommand The command to process - * @param aSection The section get from the *.ini file of the project T_Wlan - * @param aAsyncErrorIndex Command index dor async calls to returns errors to - * @return TBool ETrue if the command is process - * @leave system wide error - */ -TBool CT_WlanScanInfoData::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/) - { - TBool ret = ETrue; - - if(aCommand == KCmdNewL) - { - DoCmdNewL(aSection); - } - else if(aCommand == KCmdDestructor) - { - DoCmdDestructor(); - } - else if(aCommand == KCmdInformationElement) - { - DoCmdInformationElement(aSection); - } - else - { - ret = EFalse; - ERR_PRINTF1(_L("Unknown command")); - } - - return ret; - } - - -/** - * Create an instance of CWlanScanInfo - * @param - * @return - */ -void CT_WlanScanInfoData::DoCmdNewL(const TTEFSectionName& aSection) - { - INFO_PRINTF1(_L("*START* CT_WlanScanInfoData::DoCmdNewL")); - DestroyData(); - - TBool dataOk = ETrue; - - TInt wsUid; - if(!GetHexFromConfig(aSection, KUid, wsUid )) - { - ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KUid); - SetBlockResult(EFail); - dataOk = EFalse; - } - - if (dataOk) - { - const TUid WsUid = {wsUid}; - TAny* interface = NULL; - - TRAPD(err, interface = REComSession::CreateImplementationL( WsUid, iScanInfoInstanceIdentifier )); - if(err == KErrNone) - { - iData = reinterpret_cast( interface ); - - if(iData == NULL) - { - ERR_PRINTF1(_L("CT_WlanScanInfoData::DoCmdNewL() Fail")); - SetBlockResult(EFail); - } - } - else - { - ERR_PRINTF2(_L("Create Implementation left with error %d"), err); - SetError(err); - } - } - - INFO_PRINTF1(_L("*END* CT_WlanScanInfoData::DoCmdNewL")); - } - -/** - * Destructor for CWlanScanInfo - * @param - * @return - */ -void CT_WlanScanInfoData::DoCmdDestructor() - { - INFO_PRINTF1(_L("*START* CT_WlanScanInfoData::DoCmdDestructor")); - DestroyData(); - INFO_PRINTF1(_L("*END* CT_WlanScanInfoData::DoCmdDestructor")); - } - -/** - * called from DoCmdDestructor for destroy the object CWlanScanInfo - * @param - * @return - */ -void CT_WlanScanInfoData::DestroyData() - { - // Cannot use "delete" directly because we use a member variable as an - // ECom instance identifier - REComSession::DestroyedImplementation( iScanInfoInstanceIdentifier ); - iData = NULL; - } -/** - * Review if the IAP given in the ini file match with some Wireless Local Area Network (SelectScanInfo). - * @param aSection Section in the ini file for this command - * @return - */ -void CT_WlanScanInfoData::DoCmdInformationElement(const TTEFSectionName& aSection) - { - INFO_PRINTF1(_L("*START* CT_WlanScanInfoData::DoCmdInformationElement")); - TBool dataOk = ETrue; - - TPtrC aSsid; - if(!GetStringFromConfig(aSection,KSsidParam, aSsid)) - { - ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KSsidParam); - SetBlockResult(EFail); - dataOk = EFalse; - } - - if(dataOk) - { - TInt err(KErrNone); - // Scan info gives data as "information elements" - TUint8 ieLen(0); - const TUint8* ieData; - TWlanSsid ssid8; - TBuf ssid; - TBool match = EFalse; - - INFO_PRINTF2(_L("SSID to be checked: %S"),&aSsid); - for( iData->First(); !iData->IsDone(); iData->Next() ) - { - INFO_PRINTF1(_L("found scan info")); - err = KErrNotReady; - // Information Element ID for SSID as specified in 802.11. - const TUint8 KWlan802Dot11SsidIE(0); - err = iData->InformationElement( KWlan802Dot11SsidIE, ieLen, &ieData ); - if(err != KErrNone) - { - ERR_PRINTF2(_L("CScanInfo::InformationElement err: [%d]"),err); - SetError(err); - break; - } - if(ieLen) - { - ssid8.Copy( ieData, ieLen ); - ssid.Copy( ssid8 ); - INFO_PRINTF2(_L("Current information element SSID: %S"),&ssid); - // check if this is an expected SSID - if( aSsid.Compare( ssid ) == 0 ) - { - INFO_PRINTF1(_L("SSID match!")); - match = ETrue; - break; - } - } - } - - if (err == KErrNone && !match) - { - ERR_PRINTF2(_L("Given SSID %S NOT FOUND!"),&aSsid); - SetBlockResult(EFail); - } - } - - INFO_PRINTF1(_L("*END* CT_WlanScanInfoData::DoCmdInformationElement")); - } -