--- a/wlanutilities/wlanqtutilities/wrapper/src/wlanqtutilsconmonwrapperscan_s60.cpp Thu Jun 10 15:44:54 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +0,0 @@
-/*
-* Copyright (c) 2009-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:
-* Private implementation of wrapper for Symbian Connection Monitor
-* library's scan interface.
-*/
-
-// System includes
-
-#include <QSharedPointer>
-#include <QVariant>
-#include <rconnmon.h>
-#include <cmmanagerdefines_shim.h>
-
-// User includes
-
-#include "wlanqtutilsap.h"
-#include "wlanqtutilsconmonwrapper.h"
-#include "wlanqtutilsconmonwrapperscan_s60_p.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "wlanqtutilsconmonwrapperscan_s60Traces.h"
-#endif
-
-/*!
- \class WlanQtUtilsConMonWrapperScan
- \brief Private wrapper for Symbian Connection Monitor library.
-
- Provides functionality to scan WLAN networks.
-*/
-
-// External function prototypes
-
-// Local constants
-
-//! Size of the scan result buffer. Good for about 100 networks.
-#define SCAN_RESULT_BUFFER_SIZE 15000
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor.
-
- @param [in] wrapper Wrapper to report progress to.
- */
-
-WlanQtUtilsConMonWrapperScan::WlanQtUtilsConMonWrapperScan(
- WlanQtUtilsConMonWrapper *wrapper) :
- CActive(EPriorityStandard),
- iWlanBuf(NULL),
- iWlanPtr(0, 0),
- iScanCancelled(EFalse),
- q_ptr(wrapper)
-{
- OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERSCAN_WLANQTUTILSCONMONWRAPPERSCAN_ENTRY, this);
-
- CActiveScheduler::Add(this);
- // Errors in Connection Monitor Server connection are fatal so just
- // throw them as exceptions
- QT_TRAP_THROWING(iMonitor.ConnectL());
-
- OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERSCAN_WLANQTUTILSCONMONWRAPPERSCAN_EXIT, this);
-}
-
-/*!
- Destructor.
- */
-
-WlanQtUtilsConMonWrapperScan::~WlanQtUtilsConMonWrapperScan()
-{
- OstTraceFunctionEntry1(DUP1_WLANQTUTILSCONMONWRAPPERSCAN_WLANQTUTILSCONMONWRAPPERSCAN_ENTRY, this);
-
- // Cancel possibly ongoing scan
- Cancel();
- // Cancel notifications and close connection monitor session
- iMonitor.Close();
- delete iWlanBuf;
-
- OstTraceFunctionExit1(DUP1_WLANQTUTILSCONMONWRAPPERSCAN_WLANQTUTILSCONMONWRAPPERSCAN_EXIT, this);
-}
-
-/*!
- Request a scan for available WLAN networks.
- */
-
-void WlanQtUtilsConMonWrapperScan::ScanAvailableWlanAPs()
-{
- OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERSCAN_SCANAVAILABLEWLANAPS_ENTRY, this);
-
- if (!IsActive()) {
- // Reserve the scan result buffer, if this is the first scan
- // request. Same buffer is used for the lifetime of this object.
- if (iWlanBuf == NULL) {
- iWlanBuf = new CConnMonWlanNetworksPtrArrayPckg(
- SCAN_RESULT_BUFFER_SIZE);
- iWlanPtr.Set(iWlanBuf->Buf()->Des());
- }
-
- iScanCancelled = EFalse;
- iMonitor.GetPckgAttribute(
- EBearerIdWLAN,
- 0,
- KWlanNetworks,
- iWlanPtr,
- iStatus);
- SetActive();
- }
-
- OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERSCAN_SCANAVAILABLEWLANAPS_EXIT, this);
-}
-
-/*!
- Stops a possibly ongoing WLAN scan.
- */
-
-void WlanQtUtilsConMonWrapperScan::StopScan()
-{
- OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERSCAN_STOPSCAN_ENTRY, this);
-
- iScanCancelled = ETrue;
- Cancel();
-
- OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERSCAN_STOPSCAN_EXIT, this);
-}
-
-/*!
- From CActive: called when active object is cancelled.
- */
-
-void WlanQtUtilsConMonWrapperScan::DoCancel()
-{
- OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERSCAN_DOCANCEL_ENTRY, this);
-
- // Stop scan request, if one is active
- iMonitor.CancelAsyncRequest(EConnMonGetPckgAttribute);
-
- OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERSCAN_DOCANCEL_EXIT, this);
-}
-
-/*!
- From CActive: called when async scan request has been completed.
- Reports results to owning wrapper.
- */
-
-void WlanQtUtilsConMonWrapperScan::RunL()
-{
- OstTraceFunctionEntry1(WLANQTUTILSCONMONWRAPPERSCAN_RUNL_ENTRY, this);
-
- OstTrace1(
- TRACE_NORMAL,
- WLANQTUTILSCONMONWRAPPERSCAN_RUNL_STATUS,
- "WlanQtUtilsConMonWrapperScan::RunL;iStatus=%d", iStatus.Int() );
-
- if (iStatus == KErrNone) {
- RConnMonWlanNetworksPtrArray wlanPtrArray;
- iWlanBuf->UnpackToL(wlanPtrArray);
- QList< QSharedPointer<WlanQtUtilsAp> > wlanScanResult;
-
- OstTrace1(
- TRACE_NORMAL,
- WLANQTUTILSCONMONWRAPPERSCAN_RUNL_COUNT,
- "WlanQtUtilsConMonWrapperScan::RunL;count=%d",
- wlanPtrArray.Count());
-
- for (TInt i = 0; i < wlanPtrArray.Count(); i++) {
- // Convert name to QString
- TBuf<CConnMonWlanNetwork::KMaxNameLength> wlanName =
- wlanPtrArray[i]->Name();
- QString wlanNameInQt =
- QString::fromUtf16(wlanName.Ptr(), wlanName.Length());
-
- OstTraceExt1(
- TRACE_DUMP,
- WLANQTUTILSCONMONWRAPPERSCAN_RUNL,
- "WlanQtUtilsConMonWrapperScan::RunL;name=%S",
- wlanPtrArray[i]->Name());
-
- // Skip over hidden networks. There is no spec for what
- // their names will contain, but at least names with only
- // null characters and whitespace characters are seen
- // in real life.
- wlanNameInQt.remove(QChar());
- if (wlanNameInQt.trimmed().isEmpty()) {
- delete wlanPtrArray[i];
- continue;
- }
-
- // Go ahead and create the access point
- QSharedPointer<WlanQtUtilsAp> ap =
- QSharedPointer<WlanQtUtilsAp>(new WlanQtUtilsAp());
-
- ap->setValue(WlanQtUtilsAp::ConfIdSsid, wlanNameInQt);
-
- StoreConMonConnMode(ap, wlanPtrArray[i]->ConnectionMode());
- ap->setValue(
- WlanQtUtilsAp::ConfIdSignalStrength,
- wlanPtrArray[i]->SignalStrength());
-
- // Security mode values defined in enum TConnMonSecurityModeV2,
- // rconnmon.h.
- StoreConMonSecMode(ap, wlanPtrArray[i]->SecurityModeV2());
-
- // TODO: "Adding WLAN network manually" subfreature:
- // wps (Wifi Protected Setup) support, read this from connmon
- ap->setValue(WlanQtUtilsAp::ConfIdWpsSupported, false);
- // TODO: "Adding WLAN network manually" subfreature:
- // different scan requests needed to identify hidden networks
- ap->setValue(WlanQtUtilsAp::ConfIdHidden, false);
-
- wlanScanResult.append(ap);
- delete wlanPtrArray[i];
- }
- // Don't report results, if scan was cancelled
- if (!iScanCancelled) {
- emit q_ptr->availableWlanApsFromWrapper(wlanScanResult);
- }
- // else: scan was probably stopped before results were reveived
-
- wlanPtrArray.Close();
-
- // QSharedPointer takes care of memory deallocation
- wlanScanResult.clear();
- }
-
- OstTraceFunctionExit1(WLANQTUTILSCONMONWRAPPERSCAN_RUNL_EXIT, this);
-}
-
-/*!
- Stores Security mode parameters received from ConnMon to \a ap class.
-
- @param ap Access Point object to where the configuration is stored
- @param conMonSecMode Security mode to store.
- */
-
-void WlanQtUtilsConMonWrapperScan::StoreConMonSecMode(
- QSharedPointer<WlanQtUtilsAp> ap,
- TUint conMonSecMode)
- {
- // Entry-exit traces left out on purpose, because this is a simple
- // function and called many times inside a loop.
-
- CMManagerShim::WlanSecMode secMode;
- ap->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, false);
-
- switch (conMonSecMode) {
- case EConnMonSecurityV2WepOpen:
- case EConnMonSecurityV2WepShared:
- secMode = CMManagerShim::WlanSecModeWep;
- break;
-
- case EConnMonSecurityV2802d1x:
- secMode = CMManagerShim::WlanSecMode802_1x;
- break;
-
- case EConnMonSecurityV2Wpa:
- secMode = CMManagerShim::WlanSecModeWpa;
- break;
-
- case EConnMonSecurityV2WpaPsk:
- secMode = CMManagerShim::WlanSecModeWpa;
- ap->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- break;
-
- case EConnMonSecurityV2Wpa2:
- secMode = CMManagerShim::WlanSecModeWpa2;
- break;
-
- case EConnMonSecurityV2Wpa2Psk:
- secMode = CMManagerShim::WlanSecModeWpa2;
- ap->setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true);
- break;
-
- case EConnMonSecurityV2Wapi:
- case EConnMonSecurityV2WapiPsk:
- secMode = CMManagerShim::WlanSecModeWapi;
- break;
-
- default:
- Q_ASSERT(conMonSecMode == EConnMonSecurityV2Open);
- secMode = CMManagerShim::WlanSecModeOpen;
- break;
- }
-
- ap->setValue(WlanQtUtilsAp::ConfIdSecurityMode, secMode);
-}
-
-/*!
- Stores connection mode parameters received from ConnMon to \a ap class.
-
- @param ap Access Point object to where the configuration is stored
- @param conMonConnMode Connection mode to store.
- */
-
-void WlanQtUtilsConMonWrapperScan::StoreConMonConnMode(
- QSharedPointer<WlanQtUtilsAp> ap,
- TInt conMonConnMode)
-{
- // Entry-exit traces left out on purpose, because this is a simple
- // function and called many times inside a loop.
-
- CMManagerShim::WlanConnMode connMode;
-
- switch (conMonConnMode){
- case EConnMonInfraStructure:
- case EConnMonSecureInfra:
- connMode = CMManagerShim::Infra;
- break;
-
- default:
- Q_ASSERT(conMonConnMode == EConnMonAdHoc);
- connMode = CMManagerShim::Adhoc;
- break;
- }
-
- ap->setValue(WlanQtUtilsAp::ConfIdConnectionMode, connMode);
-}