summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/network/bearer/bearer.pri12
-rw-r--r--src/network/bearer/qbearerplugin.cpp58
-rw-r--r--src/network/bearer/qbearerplugin.h82
-rw-r--r--src/network/bearer/qnetworkconfigmanager.cpp7
-rw-r--r--src/network/bearer/qnetworkconfigmanager_p.cpp23
-rw-r--r--src/network/bearer/qnetworkconfigmanager_p.h4
-rw-r--r--src/network/bearer/qnetworkconfiguration_p.h2
-rw-r--r--src/network/bearer/qnetworksession_p.cpp10
-rw-r--r--src/network/bearer/qnetworksessionengine_p.h4
-rw-r--r--src/plugins/bearer/bearer.pro3
-rw-r--r--src/plugins/bearer/generic/generic.pro13
-rw-r--r--src/plugins/bearer/generic/main.cpp88
-rw-r--r--src/plugins/bearer/generic/qgenericengine.cpp (renamed from src/network/bearer/qgenericengine.cpp)8
-rw-r--r--src/plugins/bearer/generic/qgenericengine.h (renamed from src/network/bearer/qgenericengine_p.h)21
-rw-r--r--src/plugins/plugins.pro2
15 files changed, 298 insertions, 39 deletions
diff --git a/src/network/bearer/bearer.pri b/src/network/bearer/bearer.pri
index d8ddce5..4f53621 100644
--- a/src/network/bearer/bearer.pri
+++ b/src/network/bearer/bearer.pri
@@ -4,11 +4,13 @@
HEADERS += bearer/qnetworkconfiguration.h \
bearer/qnetworksession.h \
- bearer/qnetworkconfigmanager.h
+ bearer/qnetworkconfigmanager.h \
+ bearer/qbearerplugin.h
SOURCES += bearer/qnetworksession.cpp \
bearer/qnetworkconfigmanager.cpp \
- bearer/qnetworkconfiguration.cpp
+ bearer/qnetworkconfiguration.cpp \
+ bearer/qbearerplugin.cpp
symbian {
exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
@@ -72,13 +74,11 @@ symbian {
HEADERS += bearer/qnetworkconfigmanager_p.h \
bearer/qnetworkconfiguration_p.h \
bearer/qnetworksession_p.h \
- bearer/qnetworksessionengine_p.h \
- bearer/qgenericengine_p.h
+ bearer/qnetworksessionengine_p.h
SOURCES += bearer/qnetworkconfigmanager_p.cpp \
bearer/qnetworksession_p.cpp \
- bearer/qnetworksessionengine.cpp \
- bearer/qgenericengine.cpp
+ bearer/qnetworksessionengine.cpp
unix:!mac:contains(networkmanager_enabled, yes) {
contains(QT_CONFIG,dbus) {
diff --git a/src/network/bearer/qbearerplugin.cpp b/src/network/bearer/qbearerplugin.cpp
new file mode 100644
index 0000000..252ee71
--- /dev/null
+++ b/src/network/bearer/qbearerplugin.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtNetwork module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qbearerplugin.h"
+
+#include <QtCore/qdebug.h>
+
+QT_BEGIN_NAMESPACE
+
+QBearerEnginePlugin::QBearerEnginePlugin(QObject *parent)
+: QObject(parent)
+{
+ qDebug() << Q_FUNC_INFO;
+}
+
+QBearerEnginePlugin::~QBearerEnginePlugin()
+{
+}
+
+QT_END_NAMESPACE
diff --git a/src/network/bearer/qbearerplugin.h b/src/network/bearer/qbearerplugin.h
new file mode 100644
index 0000000..036d712
--- /dev/null
+++ b/src/network/bearer/qbearerplugin.h
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtNetwork module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QBEARERPLUGIN_H
+#define QBEARERPLUGIN_H
+
+#include "qnetworksessionengine_p.h"
+
+#include <QtCore/qplugin.h>
+#include <QtCore/qfactoryinterface.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Network)
+
+struct Q_NETWORK_EXPORT QBearerEngineFactoryInterface : public QFactoryInterface
+{
+ virtual QBearerEngine *create(const QString &key = QString()) const = 0;
+};
+
+#define QBearerEngineFactoryInterface_iid "com.trolltech.Qt.QBearerEngineFactoryInterface"
+Q_DECLARE_INTERFACE(QBearerEngineFactoryInterface, QBearerEngineFactoryInterface_iid)
+
+class Q_NETWORK_EXPORT QBearerEnginePlugin : public QObject, public QBearerEngineFactoryInterface
+{
+ Q_OBJECT
+ Q_INTERFACES(QBearerEngineFactoryInterface:QFactoryInterface)
+
+public:
+ explicit QBearerEnginePlugin(QObject *parent = 0);
+ virtual ~QBearerEnginePlugin();
+
+ virtual QStringList keys() const = 0;
+ virtual QBearerEngine *create(const QString &key = QString()) const = 0;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
+
diff --git a/src/network/bearer/qnetworkconfigmanager.cpp b/src/network/bearer/qnetworkconfigmanager.cpp
index 5031dd4..02cc652 100644
--- a/src/network/bearer/qnetworkconfigmanager.cpp
+++ b/src/network/bearer/qnetworkconfigmanager.cpp
@@ -51,6 +51,13 @@ QT_BEGIN_NAMESPACE
Q_GLOBAL_STATIC(QNetworkConfigurationManagerPrivate, connManager);
+#ifndef Q_OS_SYMBIAN
+QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate()
+{
+ return connManager();
+}
+#endif
+
/*!
\class QNetworkConfigurationManager
diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp
index 47b23d2..3e82ab7 100644
--- a/src/network/bearer/qnetworkconfigmanager_p.cpp
+++ b/src/network/bearer/qnetworkconfigmanager_p.cpp
@@ -40,7 +40,6 @@
****************************************************************************/
#include "qnetworkconfigmanager_p.h"
-#include "qgenericengine_p.h"
#ifdef Q_OS_WIN
#include "qnlaengine_win_p.h"
@@ -55,12 +54,19 @@
#include "qcorewlanengine_mac_p.h"
#endif
+#include "qbearerplugin.h"
+
+#include <QtCore/private/qfactoryloader_p.h>
+
#include <QtCore/qdebug.h>
#include <QtCore/qtimer.h>
#include <QtCore/qstringlist.h>
QT_BEGIN_NAMESPACE
+Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
+ (QBearerEngineFactoryInterface_iid, QLatin1String("/bearer")))
+
void QNetworkConfigurationManagerPrivate::registerPlatformCapabilities()
{
capFlags = QNetworkConfigurationManager::ForcedRoaming;
@@ -228,6 +234,9 @@ void QNetworkConfigurationManagerPrivate::updateConfigurations()
updateState = NotUpdating;
onlineConfigurations = 0;
+ QFactoryLoader *l = loader();
+ QStringList keys = l->keys();
+
#if defined (Q_OS_DARWIN)
coreWifi = QCoreWlanEngine::instance();
if (coreWifi) {
@@ -242,10 +251,14 @@ void QNetworkConfigurationManagerPrivate::updateConfigurations()
this, SLOT(updateConfigurations()));
} else {
#endif
- generic = QGenericEngine::instance();
- if (generic) {
- connect(generic, SIGNAL(configurationsChanged()),
- this, SLOT(updateConfigurations()));
+ QBearerEnginePlugin *genericPlugin =
+ qobject_cast<QBearerEnginePlugin *>(l->instance(QLatin1String("generic")));
+ if (genericPlugin) {
+ generic = genericPlugin->create(QLatin1String("generic"));
+ if (generic) {
+ connect(generic, SIGNAL(configurationsChanged()),
+ this, SLOT(updateConfigurations()));
+ }
}
#if defined(BACKEND_NM)
}
diff --git a/src/network/bearer/qnetworkconfigmanager_p.h b/src/network/bearer/qnetworkconfigmanager_p.h
index f2e2ee5..2ac6401 100644
--- a/src/network/bearer/qnetworkconfigmanager_p.h
+++ b/src/network/bearer/qnetworkconfigmanager_p.h
@@ -135,7 +135,7 @@ private:
#endif
#ifdef BEARER_ENGINE
- QGenericEngine *generic;
+ QNetworkSessionEngine *generic;
#ifdef Q_OS_WIN
QNlaEngine *nla;
#ifndef Q_OS_WINCE
@@ -173,6 +173,8 @@ private Q_SLOTS:
#endif
};
+QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate();
+
QT_END_NAMESPACE
#endif //QNETWORKCONFIGURATIONMANAGERPRIVATE_H
diff --git a/src/network/bearer/qnetworkconfiguration_p.h b/src/network/bearer/qnetworkconfiguration_p.h
index 69d7e18..f00bcfa 100644
--- a/src/network/bearer/qnetworkconfiguration_p.h
+++ b/src/network/bearer/qnetworkconfiguration_p.h
@@ -55,7 +55,7 @@
#include "qnetworkconfiguration.h"
#include <QtCore/qshareddata.h>
-#include <QNetworkInterface>
+#include <QtNetwork/QNetworkInterface>
QT_BEGIN_NAMESPACE
diff --git a/src/network/bearer/qnetworksession_p.cpp b/src/network/bearer/qnetworksession_p.cpp
index 8e39216..c2491ae 100644
--- a/src/network/bearer/qnetworksession_p.cpp
+++ b/src/network/bearer/qnetworksession_p.cpp
@@ -42,7 +42,7 @@
#include "qnetworksession_p.h"
#include "qnetworksession.h"
#include "qnetworksessionengine_p.h"
-#include "qgenericengine_p.h"
+#include "qnetworkconfigmanager_p.h"
#ifdef Q_OS_WIN
#include "qnlaengine_win_p.h"
@@ -81,6 +81,8 @@ static bool NetworkManagerAvailable()
static QNetworkSessionEngine *getEngineFromId(const QString &id)
{
+ QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
+
#ifdef Q_OS_WIN
QNlaEngine *nla = QNlaEngine::instance();
if (nla && nla->hasIdentifier(id))
@@ -106,9 +108,9 @@ static QNetworkSessionEngine *getEngineFromId(const QString &id)
return coreWifi;
#endif
- QGenericEngine *generic = QGenericEngine::instance();
- if (generic && generic->hasIdentifier(id))
- return generic;
+ QNetworkSessionEngine *engine = priv->configurationEngine.value(id);
+ if (engine && engine->hasIdentifier(id))
+ return engine;
return 0;
}
diff --git a/src/network/bearer/qnetworksessionengine_p.h b/src/network/bearer/qnetworksessionengine_p.h
index 8eb17d4..9fbd4ac 100644
--- a/src/network/bearer/qnetworksessionengine_p.h
+++ b/src/network/bearer/qnetworksessionengine_p.h
@@ -61,7 +61,7 @@
QT_BEGIN_NAMESPACE
class QNetworkConfigurationPrivate;
-class QNetworkSessionEngine : public QObject
+class Q_NETWORK_EXPORT QNetworkSessionEngine : public QObject
{
Q_OBJECT
@@ -92,6 +92,8 @@ Q_SIGNALS:
void connectionError(const QString &id, QNetworkSessionEngine::ConnectionError error);
};
+typedef QNetworkSessionEngine QBearerEngine;
+
QT_END_NAMESPACE
#endif
diff --git a/src/plugins/bearer/bearer.pro b/src/plugins/bearer/bearer.pro
new file mode 100644
index 0000000..0e3ef48
--- /dev/null
+++ b/src/plugins/bearer/bearer.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+
+SUBDIRS += generic
diff --git a/src/plugins/bearer/generic/generic.pro b/src/plugins/bearer/generic/generic.pro
new file mode 100644
index 0000000..d32dbe6
--- /dev/null
+++ b/src/plugins/bearer/generic/generic.pro
@@ -0,0 +1,13 @@
+TARGET = qgenericbearer
+include(../../qpluginbase.pri)
+
+QT += network
+
+DEFINES += BEARER_ENGINE
+
+HEADERS += qgenericengine.h
+SOURCES += qgenericengine.cpp main.cpp
+
+QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/bearer
+target.path += $$[QT_INSTALL_PLUGINS]/bearer
+INSTALLS += target
diff --git a/src/plugins/bearer/generic/main.cpp b/src/plugins/bearer/generic/main.cpp
new file mode 100644
index 0000000..c877fce
--- /dev/null
+++ b/src/plugins/bearer/generic/main.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qgenericengine.h"
+
+#include <QtNetwork/qbearerplugin.h>
+
+#include <QtCore/qdebug.h>
+
+QT_BEGIN_NAMESPACE
+
+class QGenericEnginePlugin : public QBearerEnginePlugin
+{
+public:
+ QGenericEnginePlugin();
+ ~QGenericEnginePlugin();
+
+ QStringList keys() const;
+ QBearerEngine *create(const QString &key) const;
+};
+
+QGenericEnginePlugin::QGenericEnginePlugin()
+{
+}
+
+QGenericEnginePlugin::~QGenericEnginePlugin()
+{
+}
+
+QStringList QGenericEnginePlugin::keys() const
+{
+ qDebug() << Q_FUNC_INFO;
+
+ return QStringList() << QLatin1String("generic");
+}
+
+QBearerEngine *QGenericEnginePlugin::create(const QString &key) const
+{
+ qDebug() << Q_FUNC_INFO;
+
+ if (key == QLatin1String("generic"))
+ return new QGenericEngine;
+ else
+ return 0;
+}
+
+Q_EXPORT_STATIC_PLUGIN(QGenericEnginePlugin)
+Q_EXPORT_PLUGIN2(qgenericbearer, QGenericEnginePlugin)
+
+QT_END_NAMESPACE
diff --git a/src/network/bearer/qgenericengine.cpp b/src/plugins/bearer/generic/qgenericengine.cpp
index d14f0fa..89db82b 100644
--- a/src/network/bearer/qgenericengine.cpp
+++ b/src/plugins/bearer/generic/qgenericengine.cpp
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the QtNetwork module of the Qt Toolkit.
+** This file is part of the plugins of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,8 +39,9 @@
**
****************************************************************************/
-#include "qgenericengine_p.h"
-#include "qnetworkconfiguration_p.h"
+#include "qgenericengine.h"
+
+#include <QtNetwork/private/qnetworkconfiguration_p.h>
#include <QtCore/qthread.h>
#include <QtCore/qmutex.h>
@@ -229,6 +230,5 @@ QGenericEngine *QGenericEngine::instance()
return genericEngine();
}
-#include "moc_qgenericengine_p.cpp"
QT_END_NAMESPACE
diff --git a/src/network/bearer/qgenericengine_p.h b/src/plugins/bearer/generic/qgenericengine.h
index 28d6e90..9923a9b 100644
--- a/src/network/bearer/qgenericengine_p.h
+++ b/src/plugins/bearer/generic/qgenericengine.h
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the QtNetwork module of the Qt Toolkit.
+** This file is part of the plugins of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,21 +39,10 @@
**
****************************************************************************/
-#ifndef QGENERICENGINE_P_H
-#define QGENERICENGINE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qnetworksessionengine_p.h"
+#ifndef QGENERICENGINE_H
+#define QGENERICENGINE_H
+
+#include <QtNetwork/private/qnetworksessionengine_p.h>
#include <QMap>
#include <QTimer>
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index 004b816..d6a426f 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -1,6 +1,6 @@
TEMPLATE = subdirs
-SUBDIRS *= accessible imageformats sqldrivers iconengines script
+SUBDIRS *= accessible imageformats sqldrivers iconengines script bearer
unix:!symbian {
contains(QT_CONFIG,iconv)|contains(QT_CONFIG,gnu-libiconv):SUBDIRS *= codecs
} else {