wlanutilities/wlanqtutilities/base/src/wlanqtutils_p.cpp
changeset 58 301aeb18ae47
parent 56 de27cc8389dd
equal deleted inserted replaced
56:de27cc8389dd 58:301aeb18ae47
    20 #include <QSharedPointer>
    20 #include <QSharedPointer>
    21 
    21 
    22 // User includes
    22 // User includes
    23 
    23 
    24 #include "wlanqtutilsap.h"
    24 #include "wlanqtutilsap.h"
    25 #include "wlanqtutilsiap.h"
       
    26 #include "wlanqtutilsconnection.h"
    25 #include "wlanqtutilsconnection.h"
    27 #include "wlanqtutilsiapsettings.h"
    26 #include "wlanqtutilsiapsettings.h"
    28 #include "wlanqtutilsconmonwrapper.h"
    27 #include "wlanqtutilsconmonwrapper.h"
    29 #include "wlanqtutilsesockwrapper.h"
    28 #include "wlanqtutilsesockwrapper.h"
    30 #include "wlanqtutilsscan.h"
    29 #include "wlanqtutilsscan.h"
    76     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_WLANQTUTILSPRIVATE_ENTRY, this);
    75     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_WLANQTUTILSPRIVATE_ENTRY, this);
    77 
    76 
    78     // Make all connections.
    77     // Make all connections.
    79     bool connectStatus = connect(
    78     bool connectStatus = connect(
    80         mScanWrapper,
    79         mScanWrapper,
    81         SIGNAL(availableWlanIaps(QList< QSharedPointer<WlanQtUtilsIap> > &)),
    80         SIGNAL(availableWlanIaps(QList< QSharedPointer<WlanQtUtilsAp> > &)),
    82         this,
    81         this,
    83         SLOT(updateAvailableWlanIaps(QList< QSharedPointer<WlanQtUtilsIap> > &)));
    82         SLOT(updateAvailableWlanIaps(QList< QSharedPointer<WlanQtUtilsAp> > &)));
    84     Q_ASSERT(connectStatus);
    83     Q_ASSERT(connectStatus);
    85     
    84     
    86     connectStatus = connect(
    85     connectStatus = connect(
    87         mScanWrapper, 
    86         mScanWrapper, 
    88         SIGNAL(availableWlanAps(QList< QSharedPointer<WlanQtUtilsAp> >&)), 
    87         SIGNAL(availableWlanAps(QList< QSharedPointer<WlanQtUtilsAp> >&)), 
    92     
    91     
    93     connectStatus = connect(
    92     connectStatus = connect(
    94         mScanWrapper,
    93         mScanWrapper,
    95         SIGNAL(scanFailed(int)),
    94         SIGNAL(scanFailed(int)),
    96         this,
    95         this,
    97         SLOT(reportScanResult(int)));
    96         SLOT(updateScanFailed(int)));
    98     Q_ASSERT(connectStatus);
    97     Q_ASSERT(connectStatus);
    99 
    98 
   100     connectStatus = connect(
    99     connectStatus = connect(
   101         mEsockWrapper, 
   100         mEsockWrapper, 
   102         SIGNAL(connectionStatusFromWrapper(bool)), 
   101         SIGNAL(connectionStatusFromWrapper(bool)), 
   203 void WlanQtUtilsPrivate::stopWlanScan()
   202 void WlanQtUtilsPrivate::stopWlanScan()
   204 {
   203 {
   205     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_STOPWLANSCAN_ENTRY, this);
   204     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_STOPWLANSCAN_ENTRY, this);
   206     
   205     
   207     if (mScanMode != ScanModeNone) {
   206     if (mScanMode != ScanModeNone) {
   208         // Inform that scan was cancelled
   207         int mode = mScanMode;
   209         reportScanResult(WlanQtUtils::ScanStatusCancelled);
       
   210         
       
   211         // Stop the scan
   208         // Stop the scan
   212         mScanMode = ScanModeNone;
   209         mScanMode = ScanModeNone;
   213         mScanWrapper->stopScan();
   210         mScanWrapper->stopScan();
       
   211 
       
   212         // Inform that scan was cancelled
       
   213         reportScanResult(WlanQtUtils::ScanStatusCancelled, mode);
   214     }
   214     }
   215     
   215     
   216     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_STOPWLANSCAN_EXIT, this);
   216     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_STOPWLANSCAN_EXIT, this);
   217 }
   217 }
   218 
   218 
   219 /*!
   219 /*!
   220    See WlanQtUtils::availableWlans().
   220    See WlanQtUtils::availableWlans().
   221 */
   221 */
   222 
   222 
   223 void WlanQtUtilsPrivate::availableWlans(
   223 void WlanQtUtilsPrivate::availableWlans(
   224     QList< QSharedPointer<WlanQtUtilsIap> > &wlanIapList,
   224     QList< QSharedPointer<WlanQtUtilsAp> > &wlanIapList,
   225     QList< QSharedPointer<WlanQtUtilsAp> > &wlanApList) const
   225     QList< QSharedPointer<WlanQtUtilsAp> > &wlanApList) const
   226 {
   226 {
   227     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_AVAILABLEWLAN_ENTRY, this);
   227     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_AVAILABLEWLAN_ENTRY, this);
   228 
   228 
   229     wlanIapList.clear();
   229     wlanIapList.clear();
   230     wlanApList.clear();
   230     wlanApList.clear();
   231 
   231 
   232     // Read the list of configured IAPs
   232     // Read the list of configured IAPs
   233     QList< QSharedPointer<WlanQtUtilsIap> > configuredIapList;
   233     QList< QSharedPointer<WlanQtUtilsAp> > configuredIapList;
   234     mSettings->fetchIaps(configuredIapList);
   234     mSettings->fetchIaps(configuredIapList);
   235 
   235 
   236     // Update the list of available IAPs
   236     // Update the list of available IAPs
   237     foreach (QSharedPointer<WlanQtUtilsIap> iapIter, mIapScanList) {
   237     foreach (QSharedPointer<WlanQtUtilsAp> iapIter, mIapScanList) {
   238         int iapId = iapIter->value(WlanQtUtilsIap::ConfIdIapId).toInt();
   238         int iapId = iapIter->value(WlanQtUtilsAp::ConfIdIapId).toInt();
   239         QSharedPointer<WlanQtUtilsIap> iap(mSettings->fetchIap(iapId));
   239         QSharedPointer<WlanQtUtilsAp> iap(mSettings->fetchIap(iapId));
   240         if (iap) {
   240         if (iap) {
   241             // Only add the IAP if we (still) have the settings for it
   241             // Only add the IAP if we (still) have the settings for it
   242             iap->setValue(
   242             iap->setValue(
   243                 WlanQtUtilsAp::ConfIdSignalStrength,
   243                 WlanQtUtilsAp::ConfIdSignalStrength,
   244                 iapIter->value(WlanQtUtilsAp::ConfIdSignalStrength));
   244                 iapIter->value(WlanQtUtilsAp::ConfIdSignalStrength));
   377     } // else: just ignore call
   377     } // else: just ignore call
   378 
   378 
   379     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_DISCONNECTIAP_EXIT, this);
   379     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_DISCONNECTIAP_EXIT, this);
   380 }
   380 }
   381 
   381 
       
   382 /*
       
   383    See WlanQtUtils::moveIapToInternetSnap().
       
   384 */
       
   385 
       
   386 void WlanQtUtilsPrivate::moveIapToInternetSnap(int iapId)
       
   387 {
       
   388     OstTraceFunctionEntry0(WLANQTUTILSPRIVATE_MOVEIAPTOINTERNETSNAP_ENTRY);
       
   389 
       
   390     mSettings->moveIapToInternetSnap(iapId);
       
   391 
       
   392     OstTraceFunctionExit0(WLANQTUTILSPRIVATE_MOVEIAPTOINTERNETSNAP_EXIT);
       
   393 }
       
   394 
   382 /*!
   395 /*!
   383    See WlanQtUtils::connectionStatus().
   396    See WlanQtUtils::connectionStatus().
   384 */
   397 */
   385 
   398 
   386 WlanQtUtils::ConnStatus WlanQtUtilsPrivate::connectionStatus() const
   399 WlanQtUtils::ConnStatus WlanQtUtilsPrivate::connectionStatus() const
   433 {
   446 {
   434     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_IAPNAME_ENTRY, this);
   447     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_IAPNAME_ENTRY, this);
   435     
   448     
   436     QString name;
   449     QString name;
   437     // Read the IAP from settings and return its name
   450     // Read the IAP from settings and return its name
   438     QSharedPointer<WlanQtUtilsIap> iap = mSettings->fetchIap(iapId);
   451     QSharedPointer<WlanQtUtilsAp> iap = mSettings->fetchIap(iapId);
   439     if (iap) {
   452     if (iap) {
   440         name = iap->value(WlanQtUtilsIap::ConfIdName).toString();
   453         name = iap->value(WlanQtUtilsAp::ConfIdName).toString();
   441     }
   454     }
   442 
   455 
   443     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_IAPNAME_EXIT, this);
   456     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_IAPNAME_EXIT, this);
   444     return name;
   457     return name;
   445 }
   458 }
   452     
   465     
   453     @return True, if suitable WLAN IAP found, false otherwise.
   466     @return True, if suitable WLAN IAP found, false otherwise.
   454 */
   467 */
   455 
   468 
   456 bool WlanQtUtilsPrivate::wlanIapExists(
   469 bool WlanQtUtilsPrivate::wlanIapExists(
   457     const QList< QSharedPointer<WlanQtUtilsIap> > list,
   470     const QList< QSharedPointer<WlanQtUtilsAp> > list,
   458     const WlanQtUtilsAp *ap) const
   471     const WlanQtUtilsAp *ap) const
   459 {
   472 {
   460     bool match = false;     // Return value
   473     bool match = false;     // Return value
   461     
   474     
   462     foreach (QSharedPointer<WlanQtUtilsIap> iap, list) {
   475     foreach (QSharedPointer<WlanQtUtilsAp> iap, list) {
   463         if (WlanQtUtilsAp::compare(iap.data(), ap) == 0) {
   476         if (WlanQtUtilsAp::compare(iap.data(), ap) == 0) {
   464             // Match found
   477             // Match found
   465             match = true;
   478             match = true;
   466             break;
   479             break;
   467         }
   480         }
   469     
   482     
   470     return match;
   483     return match;
   471 }
   484 }
   472 
   485 
   473 /*!
   486 /*!
       
   487     Reports the scanning result to the client.
       
   488         
       
   489     @param [in] status Scan status code (WlanQtUtils::ScanStatus).
       
   490     @param [in] mode Mode of the scan whose status is reported.
       
   491 */
       
   492 
       
   493 void WlanQtUtilsPrivate::reportScanResult(int status, int mode)
       
   494 {
       
   495     switch (mode) {
       
   496     case ScanModeAvailableWlans:
       
   497         OstTrace1(
       
   498             TRACE_BORDER,
       
   499             WLANQTUTILSPRIVATE_WLANSCANREADY,
       
   500             "WlanQtUtilsPrivate::reportScanResult emit wlanScanReady;status=%{ScanStatus};",
       
   501             status);
       
   502         emit q_ptr->wlanScanReady(status);
       
   503         break;
       
   504 
       
   505     case ScanModeAvailableWlanAps:
       
   506         OstTrace1(
       
   507             TRACE_BORDER,
       
   508             WLANQTUTILSPRIVATE_WLANSCANAPREADY,
       
   509             "WlanQtUtilsPrivate::reportScanResult emit wlanScanApReady;status=%{ScanStatus};",
       
   510             status);
       
   511         emit q_ptr->wlanScanApReady(status);
       
   512         break;
       
   513 
       
   514     case ScanModeDirect:
       
   515         OstTrace1(
       
   516             TRACE_BORDER,
       
   517             WLANQTUTILSPRIVATE_WLANSCANDIRECTREADY,
       
   518             "WlanQtUtilsPrivate::reportScanResult emit wlanScanDirectReady;status=%{ScanStatus};",
       
   519             status);
       
   520         emit q_ptr->wlanScanDirectReady(status);
       
   521         break;
       
   522 
       
   523 #ifndef QT_NO_DEBUG
       
   524     default:
       
   525         // Invalid scan mode detected
       
   526         Q_ASSERT(0);
       
   527         break;
       
   528 #endif        
       
   529     }
       
   530 }
       
   531 
       
   532 /*!
   474     This function traces the given IAPs and APs.
   533     This function traces the given IAPs and APs.
   475 
   534 
   476     @param [in] iaps IAPs to trace.
   535     @param [in] iaps IAPs to trace.
   477     @param [in] aps APs to trace.
   536     @param [in] aps APs to trace.
   478 */
   537 */
   479 
   538 
   480 void WlanQtUtilsPrivate::traceIapsAndAps(
   539 void WlanQtUtilsPrivate::traceIapsAndAps(
   481     const QList<QSharedPointer<WlanQtUtilsIap> > &iaps,
   540     const QList< QSharedPointer<WlanQtUtilsAp> > &iaps,
   482     const QList<QSharedPointer<WlanQtUtilsAp> > &aps) const
   541     const QList< QSharedPointer<WlanQtUtilsAp> > &aps) const
   483 {
   542 {
   484 #ifndef OST_TRACE_COMPILER_IN_USE
   543 #ifndef OST_TRACE_COMPILER_IN_USE
   485     Q_UNUSED(iaps);
   544     Q_UNUSED(iaps);
   486     Q_UNUSED(aps);
   545     Q_UNUSED(aps);
   487 #else
   546 #else
   488     foreach (QSharedPointer<WlanQtUtilsIap> iap, iaps) {
   547     foreach (QSharedPointer<WlanQtUtilsAp> iap, iaps) {
   489         QString tmp(iap->value(WlanQtUtilsIap::ConfIdName).toString());
   548         QString tmp(iap->value(WlanQtUtilsAp::ConfIdSsid).toString());
   490         TPtrC16 name(tmp.utf16(), tmp.length());
   549         TPtrC16 name(tmp.utf16(), tmp.length());
   491         OstTraceExt3(
   550         OstTraceExt3(
   492             TRACE_NORMAL,
   551             TRACE_NORMAL,
   493             WLANQTUTILSPRIVATE_TRACEAVAILABLEWLANAPS_IAP,
   552             WLANQTUTILSPRIVATE_TRACEAVAILABLEWLANAPS_IAP,
   494             "WlanQtUtilsPrivate::traceAvailableWlanAps IAP;name=%S;secMode=%{WlanSecMode};signalStrength=%d",
   553             "WlanQtUtilsPrivate::traceAvailableWlanAps IAP;name=%S;secMode=%{WlanSecMode};signalStrength=%d",
   516 
   575 
   517     @param [in] availableIaps Available WLAN IAP's found in scan.
   576     @param [in] availableIaps Available WLAN IAP's found in scan.
   518 */
   577 */
   519 
   578 
   520 void WlanQtUtilsPrivate::updateAvailableWlanIaps(
   579 void WlanQtUtilsPrivate::updateAvailableWlanIaps(
   521     QList< QSharedPointer<WlanQtUtilsIap> > &availableIaps)
   580     QList< QSharedPointer<WlanQtUtilsAp> > &availableIaps)
   522 {
   581 {
   523     OstTraceFunctionEntry0(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANIAPS_ENTRY);
   582     OstTraceFunctionEntry0(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANIAPS_ENTRY);
   524 
   583 
   525     // Store the new IAP list
   584     // Store the new IAP list
   526     mIapScanList = availableIaps;
   585     mIapScanList = availableIaps;
   560         if (duplicate == false) {
   619         if (duplicate == false) {
   561             mWlanScanList.append(availableWlanList[i]);
   620             mWlanScanList.append(availableWlanList[i]);
   562         }
   621         }
   563     }
   622     }
   564 
   623 
   565     // The information is forwarded to the client
   624     int mode = mScanMode;
   566     reportScanResult(WlanQtUtils::ScanStatusOk);
       
   567 
       
   568     // Scan is complete
   625     // Scan is complete
   569     mScanMode = ScanModeNone;
   626     mScanMode = ScanModeNone;
   570 
   627 
       
   628     // The information is forwarded to the client
       
   629     reportScanResult(WlanQtUtils::ScanStatusOk, mode);
       
   630 
   571     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANAPS_EXIT, this);
   631     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANAPS_EXIT, this);
   572 }
   632 }
   573 
   633 
   574 /*!
   634 /*!
   575     Scan result handler. Reports the scanning result to the client.
   635     Slot for handling WLAN scan failure event from wrapper. Result is
   576         
   636     reported to client.
       
   637 
   577     @param [in] status Scan status code (WlanQtUtils::ScanStatus).
   638     @param [in] status Scan status code (WlanQtUtils::ScanStatus).
   578 */
   639 */
   579 
   640 
   580 void WlanQtUtilsPrivate::reportScanResult(int status)
   641 void WlanQtUtilsPrivate::updateScanFailed(int status)
   581 {
   642 {
   582     switch (mScanMode) {
   643     OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_UPDATESCANFAILED_ENTRY, this);
   583     case ScanModeAvailableWlans:
   644 
   584         OstTrace1(
   645     int mode = mScanMode;
   585             TRACE_BORDER,
   646     // Scan is now done
   586             WLANQTUTILSPRIVATE_WLANSCANREADY,
   647     mScanMode = ScanModeNone;
   587             "WlanQtUtilsPrivate::reportScanResult emit wlanScanReady;status=%{ScanStatus};",
   648     reportScanResult(status, mode);
   588             status);
   649     
   589         emit q_ptr->wlanScanReady(status);
   650     OstTraceFunctionExit1(WLANQTUTILSPRIVATE_UPDATESCANFAILED_EXIT, this);
   590         break;
       
   591 
       
   592     case ScanModeAvailableWlanAps:
       
   593         OstTrace1(
       
   594             TRACE_BORDER,
       
   595             WLANQTUTILSPRIVATE_WLANSCANAPREADY,
       
   596             "WlanQtUtilsPrivate::reportScanResult emit wlanScanApReady;status=%{ScanStatus};",
       
   597             status);
       
   598         emit q_ptr->wlanScanApReady(status);
       
   599         break;
       
   600 
       
   601     case ScanModeDirect:
       
   602         OstTrace1(
       
   603             TRACE_BORDER,
       
   604             WLANQTUTILSPRIVATE_WLANSCANDIRECTREADY,
       
   605             "WlanQtUtilsPrivate::reportScanResult emit wlanScanDirectReady;status=%{ScanStatus};",
       
   606             status);
       
   607         emit q_ptr->wlanScanDirectReady(status);
       
   608         break;
       
   609 
       
   610 #ifndef QT_NO_DEBUG
       
   611     default:
       
   612         // Invalid scan mode detected
       
   613         Q_ASSERT(0);
       
   614         break;
       
   615 #endif        
       
   616     }
       
   617 }
   651 }
   618 
   652 
   619 /*!
   653 /*!
   620     Slot for handling connection setup status event from wrapper.
   654     Slot for handling connection setup status event from wrapper.
   621 
   655 
   655             mConnectingIapId);
   689             mConnectingIapId);
   656         emit q_ptr->wlanNetworkOpened(mConnectingIapId);
   690         emit q_ptr->wlanNetworkOpened(mConnectingIapId);
   657 
   691 
   658         // Start ICT, if needed
   692         // Start ICT, if needed
   659         if (mConnectingIapId == mToBeTestedIapId) {
   693         if (mConnectingIapId == mToBeTestedIapId) {
   660             QSharedPointer<WlanQtUtilsIap> iap(mSettings->fetchIap(mConnectingIapId));
   694             QSharedPointer<WlanQtUtilsAp> iap(mSettings->fetchIap(mConnectingIapId));
   661             
   695             
   662             mIctService = QSharedPointer<IctsWlanLoginInterface>(
   696             mIctService = QSharedPointer<IctsWlanLoginInterface>(
   663                 new IctsWlanLoginInterface(this));
   697                 new IctsWlanLoginInterface(this));
   664             
   698             
   665             // IctsWlanLoginInterface instance is created for each connectivity test
   699             // IctsWlanLoginInterface instance is created for each connectivity test
   680                 Qt::QueuedConnection);
   714                 Qt::QueuedConnection);
   681             Q_ASSERT(connectStatus);
   715             Q_ASSERT(connectStatus);
   682             
   716             
   683             mIctService->start(
   717             mIctService->start(
   684                 mToBeTestedIapId,
   718                 mToBeTestedIapId,
   685                 iap->value(WlanQtUtilsIap::ConfIdNetworkId).toInt());
   719                 iap->value(WlanQtUtilsAp::ConfIdNetworkId).toInt());
   686         }
   720         }
   687     }
   721     }
   688     // IAP is no more in connecting state
   722     // IAP is no more in connecting state
   689     mConnectingIapId = WlanQtUtils::IapIdNone;
   723     mConnectingIapId = WlanQtUtils::IapIdNone;
   690 
   724