qtinternetradio/irqnetworkcontroller/src/irqnetworkcontroller.cpp
changeset 0 09774dfdd46b
child 11 f683e24efca3
--- /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 <QStringList>
+
+#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<IRQNetworkController*>(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<unsigned long> &aList specifying the iap ids
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void IRQNetworkController::getApIdList(QList<unsigned long> &aList)
+{
+    iBody->getApIdList(aList);
+}
+
+// ---------------------------------------------------------------------------
+// IRQNetworkController::getBearerList()
+// Returns the list of bearer ids for available access points
+// @return QList<unsigned long> &aList specifying the bearer ids
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void IRQNetworkController::getBearerList(QList<unsigned long> &aList)
+{
+    iBody->getBearerList(aList);
+}
+
+// ---------------------------------------------------------------------------
+// IRQNetworkController::getNetworkList()
+// Returns the list of network ids for available access points
+// @return QList<unsigned long> &aList specifying the network ids
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void IRQNetworkController::getNetworkList(QList<unsigned long> &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;
+}