browsercore/core/network/WebNetworkConnectionManager.cpp
author hgs
Tue, 29 Jun 2010 00:46:29 -0400
changeset 3 0954f5dd2cd0
parent 0 1450b09d0cfd
child 9 b39122337a00
permissions -rw-r--r--
201026
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
*
3
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
hgs
parents: 0
diff changeset
     8
* 
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    12
* GNU Lesser General Public License for more details.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
3
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not, 
hgs
parents: 0
diff changeset
    16
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*
3
hgs
parents: 0
diff changeset
    18
* Description:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include "WebNetworkConnectionManager.h"
3
hgs
parents: 0
diff changeset
    22
#include "WebNetworkSession.h"
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
namespace WRT {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
3
hgs
parents: 0
diff changeset
    26
/*!
hgs
parents: 0
diff changeset
    27
    Constructs a WebNetworkConfigurationManager with the given \a parent.
hgs
parents: 0
diff changeset
    28
*/
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
WebNetworkConnectionManager::WebNetworkConnectionManager(QObject *parent)
3
hgs
parents: 0
diff changeset
    30
    : QObject(parent), m_WebNetworkSession(0), m_offlined(false)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
{ 
3
hgs
parents: 0
diff changeset
    32
    // set up handlers for Network Configuration Manager signals
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
    connect(&m_NetworkConfigurationManager, SIGNAL(updateCompleted()), 
3
hgs
parents: 0
diff changeset
    34
            this, SLOT(handleConfigurationUpdateCompleted()));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
    connect(&m_NetworkConfigurationManager, SIGNAL(configurationAdded(const QNetworkConfiguration&)),
3
hgs
parents: 0
diff changeset
    36
            this, SLOT(handleConfigurationAdded(const QNetworkConfiguration&)));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
    connect(&m_NetworkConfigurationManager, SIGNAL(configurationRemoved(const QNetworkConfiguration&)),
3
hgs
parents: 0
diff changeset
    38
            this, SLOT(handleConfigurationRemoved(const QNetworkConfiguration&)));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
    connect(&m_NetworkConfigurationManager, SIGNAL(onlineStateChanged(bool)), 
3
hgs
parents: 0
diff changeset
    40
            this, SLOT(handleOnlineStateChanged(bool)));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    connect(&m_NetworkConfigurationManager, SIGNAL(configurationChanged(const QNetworkConfiguration&)),
3
hgs
parents: 0
diff changeset
    42
            this, SLOT(handleConfigurationChanged(const QNetworkConfiguration&)));
hgs
parents: 0
diff changeset
    43
hgs
parents: 0
diff changeset
    44
#ifdef QT_MOBILITY_SYSINFO 
hgs
parents: 0
diff changeset
    45
    // initialize the mapping between network mode string and SystemNetworkInfo::NetworkMode
hgs
parents: 0
diff changeset
    46
    initializeMapString();
hgs
parents: 0
diff changeset
    47
#endif // QT_MOBILITY_SYSINFO
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
3
hgs
parents: 0
diff changeset
    50
/*!
hgs
parents: 0
diff changeset
    51
    Frees the resources associated with the WebNetworkConfigurationManager object.
hgs
parents: 0
diff changeset
    52
*/
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
WebNetworkConnectionManager::~WebNetworkConnectionManager()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
    if (m_WebNetworkSession)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
        deleteSession();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
3
hgs
parents: 0
diff changeset
    59
/*!
hgs
parents: 0
diff changeset
    60
    Initiates an update of all configurations. This may be used to initiate WLAN scans or other
hgs
parents: 0
diff changeset
    61
    time consuming updates which may be required to obtain the correct state for configurations.
hgs
parents: 0
diff changeset
    62
hgs
parents: 0
diff changeset
    63
    This call is asynchronous. On completion of this update the updateCompleted() signal is
hgs
parents: 0
diff changeset
    64
    emitted. If new configurations are discovered or old ones were removed or changed the update
hgs
parents: 0
diff changeset
    65
    process may trigger the emission of one or multiple configurationAdded(),
hgs
parents: 0
diff changeset
    66
    configurationRemoved() and configurationChanged() signals.
hgs
parents: 0
diff changeset
    67
hgs
parents: 0
diff changeset
    68
    If a configuration state changes as a result of this update all existing QNetworkConfiguration
hgs
parents: 0
diff changeset
    69
    instances are updated automatically.
hgs
parents: 0
diff changeset
    70
*/
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
void WebNetworkConnectionManager::updateConfigurations()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
    m_NetworkConfigurationManager.updateConfigurations();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
3
hgs
parents: 0
diff changeset
    76
/*!
hgs
parents: 0
diff changeset
    77
    Returns the default configuration to be used. This function always returns a discovered
hgs
parents: 0
diff changeset
    78
    configuration; otherwise an invalid configuration. Only configuration type SNAP is handled.
hgs
parents: 0
diff changeset
    79
hgs
parents: 0
diff changeset
    80
    In some cases it may be required to call updateConfigurations() and wait for the
hgs
parents: 0
diff changeset
    81
    updateCompleted() signal before calling this function.
hgs
parents: 0
diff changeset
    82
*/
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
QNetworkConfiguration WebNetworkConnectionManager::defaultConfiguration() const
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
    const bool canStartIAP = (m_NetworkConfigurationManager.capabilities() 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
                              & QNetworkConfigurationManager::CanStartAndStopInterfaces);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    QNetworkConfiguration config = m_NetworkConfigurationManager.defaultConfiguration();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
    if (!config.isValid() || !canStartIAP)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
        return config;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
        
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
    switch(config.type()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
        case QNetworkConfiguration::InternetAccessPoint:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
            // no user interaction -> system starts IAP immediately
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
            qDebug() << "IAP";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
            break;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
        case QNetworkConfiguration::ServiceNetwork:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
            // no user interaction -> system determines best IAP in group and starts it
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
            qDebug() << "SNAP";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
            break;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
        case QNetworkConfiguration::UserChoice:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
            // IAP resolved by asking user as part of QNetworkSession::open()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
            qDebug() << "User Choice";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
            break;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    return config;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
3
hgs
parents: 0
diff changeset
   109
/*! 
hgs
parents: 0
diff changeset
   110
    Create a Web Network Session using a QNetworkConfiguration and connect to its signals.
hgs
parents: 0
diff changeset
   111
    
hgs
parents: 0
diff changeset
   112
*/
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
void WebNetworkConnectionManager::createSession(QNetworkConfiguration config)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
{   
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    m_WebNetworkSession = new WebNetworkSession(config);
3
hgs
parents: 0
diff changeset
   116
hgs
parents: 0
diff changeset
   117
    // set up handlers for the WebNetworkSession signals
hgs
parents: 0
diff changeset
   118
    connect(m_WebNetworkSession, SIGNAL(sessionConfigurationChanged(const QNetworkConfiguration &)),
hgs
parents: 0
diff changeset
   119
            this, SLOT(handleSessionConfigurationChanged(const QNetworkConfiguration &)));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
3
hgs
parents: 0
diff changeset
   122
/*! 
hgs
parents: 0
diff changeset
   123
    Delete a Web Network Session.
hgs
parents: 0
diff changeset
   124
    
hgs
parents: 0
diff changeset
   125
*/
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
void WebNetworkConnectionManager::deleteSession(void)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
{   
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
    delete m_WebNetworkSession;
3
hgs
parents: 0
diff changeset
   129
    m_WebNetworkSession = 0;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
3
hgs
parents: 0
diff changeset
   132
/*!
hgs
parents: 0
diff changeset
   133
    Handle the updateCompleted signal from Network Configuration Manager.
hgs
parents: 0
diff changeset
   134
    
hgs
parents: 0
diff changeset
   135
    It creates a Web Network Session using the default configuration.
hgs
parents: 0
diff changeset
   136
*/
hgs
parents: 0
diff changeset
   137
void WebNetworkConnectionManager::handleConfigurationUpdateCompleted()
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
	  qDebug() << "configurationUpdateCompleted: create new network connection session";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
	  if (m_WebNetworkSession)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
	  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
	  	  qDebug() << "Delete old network connection session";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
	  	  deleteSession();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
	  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
	  
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
    createSession(defaultConfiguration());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
3
hgs
parents: 0
diff changeset
   149
/*! 
hgs
parents: 0
diff changeset
   150
    Handle the configurationAdded signal from Network Configuration Manager.
hgs
parents: 0
diff changeset
   151
*/
hgs
parents: 0
diff changeset
   152
void WebNetworkConnectionManager::handleConfigurationAdded(const QNetworkConfiguration& config)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
    qDebug() << "Configuration" << config.name() << "Added";    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
3
hgs
parents: 0
diff changeset
   157
/*! 
hgs
parents: 0
diff changeset
   158
    Handle the configurationRemoved signal from Network Configuration Manager
hgs
parents: 0
diff changeset
   159
*/
hgs
parents: 0
diff changeset
   160
void WebNetworkConnectionManager::handleConfigurationRemoved(const QNetworkConfiguration& config)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
    qDebug() << "Configuration" << config.name() << "Removed";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
3
hgs
parents: 0
diff changeset
   165
/*! 
hgs
parents: 0
diff changeset
   166
    Handle the onlineStateChanged signal from Network Configuration Manager.
hgs
parents: 0
diff changeset
   167
*/
hgs
parents: 0
diff changeset
   168
void WebNetworkConnectionManager::handleOnlineStateChanged(bool isOnline)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
{
3
hgs
parents: 0
diff changeset
   170
    emit networkOnlineStateChanged(isOnline);
hgs
parents: 0
diff changeset
   171
    
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    if (!isOnline)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
    {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
        qDebug() << "offline";
3
hgs
parents: 0
diff changeset
   175
        m_offlined = true;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    else
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
        qDebug() << "online";
3
hgs
parents: 0
diff changeset
   180
        m_offlined = false;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    // flash icon to indicate the online state change with "online" and "offline".
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
3
hgs
parents: 0
diff changeset
   185
/*! 
hgs
parents: 0
diff changeset
   186
    Handle the configurationChanged signal from Network Configuration Manager.
hgs
parents: 0
diff changeset
   187
*/
hgs
parents: 0
diff changeset
   188
void WebNetworkConnectionManager::handleConfigurationChanged(const QNetworkConfiguration &config)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
{
3
hgs
parents: 0
diff changeset
   190
    qDebug() << "Configuration" << config.name() << "Changed";
hgs
parents: 0
diff changeset
   191
    qDebug() << "bearername:" << config.bearerName() << "type:" << config.type() << "state:" << config.state() << "purpose:" << config.purpose();
hgs
parents: 0
diff changeset
   192
    
hgs
parents: 0
diff changeset
   193
    /* The QNetworkSession is closed becuase of previous offline condition. Re-open the session if 
hgs
parents: 0
diff changeset
   194
       the configuration matches the configurations hold by the QNetworkSession */
hgs
parents: 0
diff changeset
   195
#ifdef NO_OFFLINED_BUG
hgs
parents: 0
diff changeset
   196
    if (isOfflined())
hgs
parents: 0
diff changeset
   197
    {
hgs
parents: 0
diff changeset
   198
#endif // NO_OFFLINED_BUG
hgs
parents: 0
diff changeset
   199
        if (m_WebNetworkSession && !m_WebNetworkSession->isOpen())
hgs
parents: 0
diff changeset
   200
        {
hgs
parents: 0
diff changeset
   201
            QNetworkConfiguration sessionConfig = m_WebNetworkSession->configuration();
hgs
parents: 0
diff changeset
   202
            QList<QNetworkConfiguration> children = sessionConfig.children();
hgs
parents: 0
diff changeset
   203
        	  switch(sessionConfig.type())
hgs
parents: 0
diff changeset
   204
            {
hgs
parents: 0
diff changeset
   205
                case QNetworkConfiguration::ServiceNetwork:        
hgs
parents: 0
diff changeset
   206
                    /* Traverse all configuration to find the matching configuration */
hgs
parents: 0
diff changeset
   207
                    foreach(QNetworkConfiguration tmpConfig, children)
hgs
parents: 0
diff changeset
   208
                    {
hgs
parents: 0
diff changeset
   209
        	              if (config == tmpConfig)
hgs
parents: 0
diff changeset
   210
        	              {
hgs
parents: 0
diff changeset
   211
        	              	  if ((config.state() == QNetworkConfiguration::Discovered) ||
hgs
parents: 0
diff changeset
   212
        	              	  	   (config.state() == QNetworkConfiguration::Active))
hgs
parents: 0
diff changeset
   213
        	                      m_WebNetworkSession->open();
hgs
parents: 0
diff changeset
   214
            	              break;
hgs
parents: 0
diff changeset
   215
            	          }
hgs
parents: 0
diff changeset
   216
            	      }
hgs
parents: 0
diff changeset
   217
                    break;  
hgs
parents: 0
diff changeset
   218
               case QNetworkConfiguration::InternetAccessPoint:
hgs
parents: 0
diff changeset
   219
        	          qDebug() << "InternetAccessPoint";
hgs
parents: 0
diff changeset
   220
                    break;
hgs
parents: 0
diff changeset
   221
               case QNetworkConfiguration::UserChoice:
hgs
parents: 0
diff changeset
   222
        	          qDebug() << "UserChoice";
hgs
parents: 0
diff changeset
   223
        	          break;
hgs
parents: 0
diff changeset
   224
               default:
hgs
parents: 0
diff changeset
   225
        	         break;
hgs
parents: 0
diff changeset
   226
            } 	  
hgs
parents: 0
diff changeset
   227
        }
hgs
parents: 0
diff changeset
   228
#ifdef NO_OFFLINED_BUG
hgs
parents: 0
diff changeset
   229
    }
hgs
parents: 0
diff changeset
   230
#endif // NO_OFFLINED_BUG
hgs
parents: 0
diff changeset
   231
} 
hgs
parents: 0
diff changeset
   232
hgs
parents: 0
diff changeset
   233
/*! 
hgs
parents: 0
diff changeset
   234
    Handle the networkNameChanged signal from Network Configuration Manager and translate 
hgs
parents: 0
diff changeset
   235
    sessionConfiguration signal to networknameChanged.
hgs
parents: 0
diff changeset
   236
    
hgs
parents: 0
diff changeset
   237
    It a\ emits networkNameChanged signal for no cellular network connetion.
hgs
parents: 0
diff changeset
   238
*/
hgs
parents: 0
diff changeset
   239
void WebNetworkConnectionManager::handleSessionConfigurationChanged(const QNetworkConfiguration &config)
hgs
parents: 0
diff changeset
   240
{  
hgs
parents: 0
diff changeset
   241
    qDebug() << "handleSessionConfigurationChanged" << "bearername:" << config.bearerName();
hgs
parents: 0
diff changeset
   242
hgs
parents: 0
diff changeset
   243
#ifdef QT_MOBILITY_SYSINFO  
hgs
parents: 0
diff changeset
   244
    QSystemNetworkInfo::NetworkMode mode;
hgs
parents: 0
diff changeset
   245
    mode = m_mapStringNetworkMode[config.bearerName()];
hgs
parents: 0
diff changeset
   246
hgs
parents: 0
diff changeset
   247
    emit networkSessionNameChanged(mode, config.name());
hgs
parents: 0
diff changeset
   248
#endif // QT_MOBILITY_SYSINFO
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
}
3
hgs
parents: 0
diff changeset
   250
hgs
parents: 0
diff changeset
   251
#ifdef QT_MOBILITY_SYSINFO
hgs
parents: 0
diff changeset
   252
void WebNetworkConnectionManager::initializeMapString(void)
hgs
parents: 0
diff changeset
   253
{
hgs
parents: 0
diff changeset
   254
	  m_mapStringNetworkMode["Ethernet"] = QSystemNetworkInfo::EthernetMode;
hgs
parents: 0
diff changeset
   255
	  m_mapStringNetworkMode["WLAN"] = QSystemNetworkInfo::WlanMode;
hgs
parents: 0
diff changeset
   256
	  m_mapStringNetworkMode["2G"] = QSystemNetworkInfo::GsmMode;
hgs
parents: 0
diff changeset
   257
	  m_mapStringNetworkMode["CDMA2000"] = QSystemNetworkInfo::CdmaMode;
hgs
parents: 0
diff changeset
   258
	  m_mapStringNetworkMode["WCDMA"] = QSystemNetworkInfo::WcdmaMode;
hgs
parents: 0
diff changeset
   259
	  m_mapStringNetworkMode["HSPA"] = QSystemNetworkInfo::UnknownMode;
hgs
parents: 0
diff changeset
   260
	  m_mapStringNetworkMode["Bluetooth"] = QSystemNetworkInfo::BluetoothMode;
hgs
parents: 0
diff changeset
   261
	  m_mapStringNetworkMode["WiMAX"] = QSystemNetworkInfo::WimaxMode;
hgs
parents: 0
diff changeset
   262
	  m_mapStringNetworkMode[""] = QSystemNetworkInfo::UnknownMode;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
}
3
hgs
parents: 0
diff changeset
   264
#endif // QT_MOBILITY_SYSINFO
hgs
parents: 0
diff changeset
   265
hgs
parents: 0
diff changeset
   266
} // WRT
hgs
parents: 0
diff changeset
   267