wlanutilities/wlansniffer/wlansnifferapplication/src/wlansnifferengine.cpp
branchRCL_3
changeset 25 f28ada11abbf
parent 24 63be7eb3fc78
--- a/wlanutilities/wlansniffer/wlansnifferapplication/src/wlansnifferengine.cpp	Tue Aug 31 16:18:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,452 +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:
-* WLAN Sniffer application engine. 
-*/
-
-// System includes
-
-#include <QTimerEvent>
-
-#include <xqserviceutil.h>
-#include <xqsettingsmanager.h>
-#include <wlandevicesettingsinternalcrkeys.h>
-#include <startupdomainpskeys.h>
-
-// User includes
-
-#include "wlanqtutils.h"
-#include "wlansnifferservice.h"
-#include "wlansnifferengine.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "wlansnifferengineTraces.h"
-#endif
-
-/*!
-    \class WlanSnifferEngine
-    \brief WLAN Sniffer application engine.
-
-    This class implements the WLAN Sniffer application engine.
-    The purpose of the engine implementation is to gather all non-UI
-    implementation base functionality into one place that can be utilized
-    from multiple places (i.e. multiple views and windows).  
-*/
-
-
-// External function prototypes
-
-// Local constants
-
-//! Master WLAN ON/OFF setting key
-static const XQSettingsKey masterWlanKey(
-    XQSettingsKey::TargetCentralRepository,
-    KCRUidWlanDeviceSettingsRegistryId.iUid, 
-    KWlanOnOff);
-    
-//! WLAN  forced OFF setting key
-static const XQSettingsKey wlanForceKey(
-    XQSettingsKey::TargetCentralRepository,
-    KCRUidWlanDeviceSettingsRegistryId.iUid, 
-    KWlanForceDisable);
-
-//! Offline mode setting key
-static const XQSettingsKey offlineKey(
-    XQSettingsKey::TargetPublishAndSubscribe,
-    KPSUidStartup.iUid, 
-    KPSGlobalSystemState);
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
-    Constructor.
-    
-    @param [in] parent Parent object.
- */
-
-WlanSnifferEngine::WlanSnifferEngine(QObject *parent) :
-    QObject(parent),
-    mService(new WlanSnifferService(this)),
-    mSettingsManager(new XQSettingsManager(this)),
-    mScanTimerId(0),
-    mScanEnabled(false),
-    mEmbedded(false),
-    mWlanQtUtils(new WlanQtUtils())
-{
-    OstTraceFunctionEntry0(WLANSNIFFERENGINE_WLANSNIFFERENGINE_ENTRY);
-
-    // Subscribe for WLAN status change indications
-    bool connectStatus = connect(
-        mSettingsManager, 
-        SIGNAL(valueChanged(XQSettingsKey, QVariant)),
-        this, 
-        SLOT(updateSetting(XQSettingsKey, QVariant)));
-    Q_ASSERT(connectStatus);
-    mSettingsManager->startMonitoring(masterWlanKey);
-    mSettingsManager->startMonitoring(wlanForceKey);
-
-    // Connect WLAN Sniffer service signals
-    connectStatus = connect(
-        mService,
-        SIGNAL(toListView(QString)),
-        this,
-        SIGNAL(toListView(QString)));
-    Q_ASSERT(connectStatus == true);
-    connectStatus = connect(
-        mService,
-        SIGNAL(returnValueDelivered()),
-        this,
-        SIGNAL(exitTriggered()));    
-    Q_ASSERT(connectStatus == true);
-    
-    // Store WLAN Sniffer service embedded status
-    mEmbedded = XQServiceUtil::isEmbedded();
-    
-    OstTraceFunctionExit0(WLANSNIFFERENGINE_WLANSNIFFERENGINE_EXIT);
-}
-
-/*!
-    Destructor.
- */
-
-WlanSnifferEngine::~WlanSnifferEngine()
-{
-    OstTraceFunctionEntry0(DUP1_WLANSNIFFERENGINE_WLANSNIFFERENGINE_ENTRY);
-    OstTraceFunctionExit0(DUP1_WLANSNIFFERENGINE_WLANSNIFFERENGINE_EXIT);
-}
-
-/*!
-    Getter function for WLAN Qt Utilities instance owned by
-    this class. The whole WLAN Sniffer application uses the same
-    instance, and thus the reference is needed also in other classes.
-    
-    @return WLAN Qt Utilities object.
- */
-
-WlanQtUtils *WlanSnifferEngine::wlanQtUtils() const
-{
-    OstTraceFunctionEntry0(WLANSNIFFERENGINE_WLANQTUTILS_ENTRY);
-    
-    // The reference must never be null.
-    Q_ASSERT(mWlanQtUtils.data());
-    
-    OstTraceFunctionExit0(WLANSNIFFERENGINE_WLANQTUTILS_EXIT);
-    return mWlanQtUtils.data();
-}
-
-/*!
-    Getter for WLAN Sniffer service embedded property.
-    
-    @return TRUE if WLAN Sniffer is used as an embedded service.
- */
-
-bool WlanSnifferEngine::isEmbedded() const
-{
-    OstTraceFunctionEntry0(WLANSNIFFERENGINE_ISEMBEDDED_ENTRY);
-    OstTraceFunctionExit0(WLANSNIFFERENGINE_ISEMBEDDED_EXIT);
-    return mEmbedded;
-}
-
-/*!
-    Starts periodic WLAN Scanning.
-    It is allowed to call this function also when the scanning is already ON.
-    If so, the timer is not restarted but the scan period stays untouched. 
- */
-
-void WlanSnifferEngine::startWlanScanning()
-{
-    OstTraceFunctionEntry0(WLANSNIFFERENGINE_STARTWLANSCANNING_ENTRY);
-
-    if (!mScanEnabled) {
-        OstTrace0(
-            TRACE_NORMAL,
-            WLANSNIFFERENGINE_STARTWLANSCANNING,
-            "WlanSnifferEngine::startWlanScanning Periodic WLAN scanning starting");
-
-        mScanEnabled = true;
-        // Connect response signal
-        bool connectStatus = connect(
-            mWlanQtUtils.data(),
-            SIGNAL(wlanScanReady(int)),
-            this,
-            SLOT(handleWlanScanReady(int)));
-        Q_ASSERT(connectStatus);
-
-        // Start the first scan. Scan timer is started when scan result
-        // signal is received.
-        mWlanQtUtils->scanWlans();
-    }
-    
-    OstTraceFunctionExit0(WLANSNIFFERENGINE_STARTWLANSCANNING_EXIT);
-}
-
-/*!
-    Stops periodic WLAN Scanning.
-    It is allowed to call this function also when periodic scanning is OFF.
- */
-
-void WlanSnifferEngine::stopWlanScanning()
-{
-    OstTraceFunctionEntry0(WLANSNIFFERENGINE_STOPWLANSCANNING_ENTRY);
-    
-    if (mScanEnabled) {
-        OstTrace0(
-            TRACE_NORMAL,
-            WLANSNIFFERENGINE_STOPWLANSCANNING,
-            "WlanSnifferEngine::stopWlanScanning Periodic WLAN scanning stopped");
-
-        mScanEnabled = false;
-        // Disconnect response signal
-        disconnect(
-            mWlanQtUtils.data(),
-            SIGNAL(wlanScanReady(int)),
-            this,
-            SLOT(handleWlanScanReady(int)));
-
-        // Stop the scan
-        mWlanQtUtils->stopWlanScan();
-
-        // Stop periodic scan timer
-        if (mScanTimerId != 0) {
-            killTimer(mScanTimerId);
-            mScanTimerId = 0;
-        }
-    }
-    
-    OstTraceFunctionExit0(WLANSNIFFERENGINE_STOPWLANSCANNING_EXIT);
-}
-
-/*!
-    Function for getting the master WLAN status.
-
-    @return Master WLAN status: true if enabled, otherwise false.
-*/
-
-bool WlanSnifferEngine::masterWlan() const
-{
-    OstTraceFunctionEntry1(WLANSNIFFERENGINE_MASTERWLAN_ENTRY, this);
-
-    // Read WLAN ON/OFF setting from Cenrep
-    int wlanEnabled = mSettingsManager->readItemValue(masterWlanKey).toInt();
-
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANSNIFFERENGINE_MASTERWLAN,
-        "WlanSnifferEngine::masterWlan;enabled=%d",
-        wlanEnabled);
-
-    OstTraceFunctionExit1(WLANSNIFFERENGINE_MASTERWLAN_EXIT, this);
-    return wlanEnabled ? true : false;
-}
-
-/*!
-    Function for switching the master WLAN status ON or OFF.
-
-    @param [in] enabled If set to true, WLAN is switched ON, and vice versa.
-*/
-
-void WlanSnifferEngine::setMasterWlan(bool enabled)
-{
-    OstTraceFunctionEntry1(WLANSNIFFERENGINE_SETMASTERWLAN_ENTRY, this);
-
-    OstTraceExt1(
-        TRACE_NORMAL,
-        WLANSNIFFERENGINE_SETMASTERWLAN,
-        "WlanSnifferEngine::setMasterWlan;enabled=%hhu",
-        enabled);
-    
-    // Store WLAN ON/OFF setting to Cenrep
-    int wlanEnabled = enabled ? 1 : 0;
-    bool writeStatus = mSettingsManager->writeItemValue(masterWlanKey, wlanEnabled);
-    Q_ASSERT(writeStatus);
-
-    OstTraceFunctionExit1(WLANSNIFFERENGINE_SETMASTERWLAN_EXIT, this);
-}
-
-/*!
-    Function for getting the force disable WLAN status.
-     
-    @return forced WLAN status: true if disabled, otherwise false.
-*/
-
-bool WlanSnifferEngine::forceDisableWlan() const
-{
-    OstTraceFunctionEntry1(WLANSNIFFERENGINE_FORCEDISABLEWLAN_ENTRY, this);
-    
-    // Read force disable WLAN ON/OFF setting from Cenrep
-    int wlanDisabled = mSettingsManager->readItemValue(wlanForceKey).toInt();
-
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANSNIFFERENGINE_FORCEDISABLEWLAN,
-        "WlanSnifferEngine::forceDisableWlan;wlanDisabled=%d",
-        wlanDisabled);
-
-    OstTraceFunctionEntry1(WLANSNIFFERENGINE_FORCEDISABLEWLAN_EXIT, this);
-    return wlanDisabled ? true : false;
-}
-
-/*!
-    Function for getting the offline mode status.
-
-    @return Offline mode status: true if offline, otherwise false.
-*/
-
-bool WlanSnifferEngine::offlineMode() const
-{
-    OstTraceFunctionEntry1(WLANSNIFFERENGINE_OFFLINEMODE_ENTRY, this);
-    
-    // Read offline mode setting from Cenrep
-    int systemState = mSettingsManager->readItemValue(offlineKey).toInt();
-
-    bool offline = false;
-    if (ESwStateNormalRfOff == systemState) {
-        offline = true;
-    }
-    
-    OstTraceExt1(
-        TRACE_NORMAL,
-        WLANSNIFFERENGINE_OFFLINEMODE,
-        "WlanSnifferEngine::offlineMode;offline=%hhu",
-        offline);
-
-    OstTraceFunctionExit1(WLANSNIFFERENGINE_OFFLINEMODE_EXIT, this);
-    return offline; 
-}
-
-/*!
-    Function for completing the running WLAN Sniffer service.
-    This function must only be ran if a WLAN Sniffer service is running. 
- */
-
-void WlanSnifferEngine::completeService()
-{
-    OstTraceFunctionEntry0(WLANSNIFFERENGINE_COMPLETESERVICE_ENTRY);
-    
-    mService->complete();
-
-    OstTraceFunctionExit0(WLANSNIFFERENGINE_COMPLETESERVICE_EXIT);
-}
-
-/*!
-    This function (from QObject) handles timers. Initiates a new WLAN scan.
-
-    @param [in] event Timer event.
- */
-
-void WlanSnifferEngine::timerEvent(QTimerEvent *event)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERENGINE_TIMEREVENT_ENTRY);
-    
-    int timerId = event->timerId();
-        
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANSNIFFERENGINE_TIMEREVENT,
-        "WlanSnifferEngine::timerEvent;timerId=%d",
-        timerId);
-    
-    // WLAN scan timer is the only used timer
-    Q_ASSERT(timerId == mScanTimerId);
-    
-    // Request a new scan. Timer events come periodically.
-    mWlanQtUtils->scanWlans();
-    
-    OstTraceFunctionExit0(WLANSNIFFERENGINE_TIMEREVENT_EXIT);
-}
-
-/*!
-    Slot for updating settings.
-
-    @param [in] key The changed key setting.
-    @param [in] value The new value of the setting.
-*/
-
-void WlanSnifferEngine::updateSetting(
-    const XQSettingsKey &key,
-    const QVariant &value)
-{   
-    OstTraceFunctionEntry1(WLANSNIFFERENGINE_UPDATESETTING_ENTRY, this);
-    
-    // Check that the key is WLAN ON/OFF, or wlanForceDisable since 
-    // they are the only supported keys
-    Q_ASSERT(
-        key.target() == masterWlanKey.target() ||
-        key.target() == wlanForceKey.target());
-    Q_ASSERT(
-        key.uid() == masterWlanKey.uid() ||
-        key.uid() == wlanForceKey.uid());
-    Q_ASSERT(
-        key.key() == masterWlanKey.key() ||
-        key.key() == wlanForceKey.key());
-
-    bool ok;
-    bool boolean = value.toInt(&ok) ? true : false;
-    Q_ASSERT(ok);
-    
-    // The updated key can be either the KWlanOnOff or the KWlanForceDisable
-    if (key.key() == wlanForceKey.key()) {
-        // Inform about WlanForceDisable status change
-        OstTraceExt1(
-            TRACE_NORMAL,
-            WLANSNIFFERENGINE_UPDATESETTING_WLANFORCEDISABLE,
-            "WlanSnifferEngine::emit forceWlanStatus;forcedWlanDisabled=%hhu",
-            boolean);
-        emit forceDisableWlanStatus(boolean);
-    } else {
-        // Inform about WLAN ON/OFF status change
-        OstTraceExt1(
-            TRACE_NORMAL,
-            WLANSNIFFERENGINE_UPDATESETTING_WLANONOFF,
-            "WlanSnifferEngine::emit masterWlanStatus;wlanEnabled=%hhu",
-            boolean);
-        emit masterWlanStatus(boolean);
-    }
-    
-    OstTraceFunctionExit1(WLANSNIFFERENGINE_UPDATESETTING_EXIT, this);
-}
-
-/*!
-    Slot for handling Wlan scan result.
-
-    @param [in] status Scan status code.
-*/
-
-void WlanSnifferEngine::handleWlanScanReady(int status)
-{   
-    OstTraceFunctionEntry1(WLANSNIFFERENGINE_HANDLEWLANSCANREADY_ENTRY, this);
-
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANSNIFFERENGINE_HANDLEWLANSCANREADY,
-        "WlanSnifferEngine::handleWlanScanReady;status=%d",
-        status);
-    
-    // Forward result signal only, if there was no error
-    if (status == WlanQtUtils::ScanStatusOk) {
-        emit wlanScanReady();
-    }
-    
-    // Start timer for the next scan, if not running already
-    if (mScanTimerId == 0) {
-        mScanTimerId = startTimer(scanTimerInterval);
-        // The timer start must succeed
-        Q_ASSERT(mScanTimerId != 0);
-    }
-    
-    OstTraceFunctionExit1(WLANSNIFFERENGINE_HANDLEWLANSCANREADY_EXIT, this);
-}