diff -r 000000000000 -r 09774dfdd46b qtinternetradio/irqnetworkcontroller/src/irqnetworkcontroller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/irqnetworkcontroller/src/irqnetworkcontroller.cpp Mon Apr 19 14:01:53 2010 +0300 @@ -0,0 +1,283 @@ +/* +* 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: +* +*/ +#include + +#include "irqnetworkcontroller.h" +#include "irqnetworkcontrollerbody.h" + +// --------------------------------------------------------------------------- +// IRQNetworkController::openInstance() +// Static function to get a singleton instance of IRQNetworkController +// @return IRQNetworkController * +// --------------------------------------------------------------------------- +// +EXPORT_C IRQNetworkController* IRQNetworkController::openInstance() +{ + // Get singleton instance + IRQNetworkController* irqnetworkcontroller = + reinterpret_cast(Dll::Tls()); + + if (NULL == irqnetworkcontroller) + { + TRAPD(error, irqnetworkcontroller = createInstanceL()); + if (KErrNone != error) + { + delete irqnetworkcontroller; + irqnetworkcontroller = NULL; + Dll::SetTls(NULL); + } + } + else + { + irqnetworkcontroller->iSingletonInstances++; + } + + return irqnetworkcontroller; +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::closeInstance() +// Close a singleton instance of IRQNetworkController +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::closeInstance() +{ + iSingletonInstances--; + + if (0 == iSingletonInstances) + { + Dll::SetTls(NULL); + delete this; + } +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::GetNetworkStatus() +// Returns the variable which indicates if connection is active or not +// @return bool +// --------------------------------------------------------------------------- +// +EXPORT_C bool IRQNetworkController::getNetworkStatus() const +{ + return iBody->getNetworkStatus(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::getIAPId() +// Gets the IAP Id of the chosen IAP +// @return IRQError +// --------------------------------------------------------------------------- +// +EXPORT_C IRQError IRQNetworkController::getIAPId(unsigned long& aIapId) const +{ + return iBody->getIAPId(aIapId); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::getAccessPointList() +// Returns the list of available access points +// @return QStringList &aList specifying the access point names +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::getAccessPointList(QStringList &aList) +{ + iBody->getAccessPointList(aList); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::getApIdList() +// Returns the list of iap ids for available access points +// @return QList &aList specifying the iap ids +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::getApIdList(QList &aList) +{ + iBody->getApIdList(aList); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::getBearerList() +// Returns the list of bearer ids for available access points +// @return QList &aList specifying the bearer ids +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::getBearerList(QList &aList) +{ + iBody->getBearerList(aList); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::getNetworkList() +// Returns the list of network ids for available access points +// @return QList &aList specifying the network ids +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::getNetworkList(QList &aList) +{ + iBody->getNetworkList(aList); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::chooseAccessPoint() +// Configures the Access Point which is used by all the components for network +// connectivity +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::chooseAccessPoint() +{ + iBody->chooseAccessPoint(); +} + +/* + * Cancel configuring access point + */ +EXPORT_C void IRQNetworkController::cancelConnecting() +{ + iBody->cancelConnecting(); + iBody->resetConnectionStatus(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::isOfflineMode() +// Indicates if the phone is in offline mode +// @return True if the phone is in offline mode else False +// --------------------------------------------------------------------------- +// +EXPORT_C bool IRQNetworkController::isOfflineMode() +{ + return iBody->isOfflineMode(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::isWlanSupported() +// Indicates if the phone supports WLan usage +// @return True if the phone supports else False +// --------------------------------------------------------------------------- +// +EXPORT_C bool IRQNetworkController::isWlanSupported() const +{ + return iBody->isWlanSupported(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::resetConnectionStatus() +// Resets the connection status to Disconnected state +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::resetConnectionStatus() +{ + iBody->resetConnectionStatus(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::identifyConnectionType() +// Indicates the type of connection +// @return enum describing the type of connection ( GPRS/3G/WiFi ) +// --------------------------------------------------------------------------- +// +EXPORT_C IRQConnectionType IRQNetworkController::identifyConnectionType() const +{ + return iBody->identifyConnectionType(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::notifyActiveNetworkObservers() +// Notifies all observers whose network request is active to reissue the request +// --------------------------------------------------------------------------- +// +EXPORT_C void IRQNetworkController::notifyActiveNetworkObservers(IRQNetworkEvent aEvent) +{ + iBody->notifyActiveNetworkObservers(aEvent); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::isHandlingOverConnection() +// Indicates if the hand over of network connection has happened +// @return bool +// --------------------------------------------------------------------------- +// +EXPORT_C bool IRQNetworkController::isHandlingOverConnection() +{ + return iBody->isHandlingOverConnection(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::isConnectRequestIssued() +// Indicates if chooseAccessPoint is called +// @return bool +// --------------------------------------------------------------------------- +// +EXPORT_C bool IRQNetworkController::isConnectRequestIssued() const +{ + return iBody->isConnectRequestIssued(); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::IRQNetworkController() +// Default constructor +// --------------------------------------------------------------------------- +// +IRQNetworkController::IRQNetworkController() +{ +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::~IRQNetworkController() +// Destructor +// +// --------------------------------------------------------------------------- +// +IRQNetworkController::~IRQNetworkController() +{ + delete iBody; + iBody = NULL; +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::constructL() +// Two-Phase Constructor. +// --------------------------------------------------------------------------- +// +void IRQNetworkController::constructL() +{ + iBody = new (ELeave) IRQNetworkControllerBody(); + Q_ASSERT(iBody); + iBody->initL(); + + connect(iBody, SIGNAL(networkRequestNotified(IRQNetworkEvent)), + this, SIGNAL(networkRequestNotified(IRQNetworkEvent))); + connect(iBody, SIGNAL(pendingRequestsReset(bool)), + this, SIGNAL(pendingRequestsReset(bool))); + connect(iBody, SIGNAL(networkEventNotified(IRQNetworkEvent)), + this, SIGNAL(networkEventNotified(IRQNetworkEvent))); + connect(iBody, SIGNAL(errorOccured(IRQError)), + this, SIGNAL(errorOccured(IRQError))); +} + +// --------------------------------------------------------------------------- +// IRQNetworkController::createInstanceL() +// Creates IRQNetworkController instance +// --------------------------------------------------------------------------- +// +IRQNetworkController* IRQNetworkController::createInstanceL() +{ + IRQNetworkController* nwkController = new (ELeave) IRQNetworkController(); + nwkController->constructL(); + User::LeaveIfError(Dll::SetTls(nwkController)); + nwkController->iSingletonInstances = 1; + return nwkController; +}