From dbb7817e13bc7f7ccb8f04b00a65eb3dcf8d25f8 Mon Sep 17 00:00:00 2001 From: Louai Al-Khanji Date: Thu, 15 Oct 2015 16:24:54 +0300 Subject: Remove remaining support for Blackberry The platform is no longer supported or actively maintained, and is in the way for improvements to the Unix event dispatcher and QProcess implementations. Change-Id: I3935488ca12e2139ea5f46068d7665a453e20526 Reviewed-by: Lars Knoll --- src/plugins/bearer/bearer.pro | 1 - src/plugins/bearer/blackberry/blackberry.json | 3 - src/plugins/bearer/blackberry/blackberry.pro | 20 -- src/plugins/bearer/blackberry/main.cpp | 63 ---- src/plugins/bearer/blackberry/qbbengine.cpp | 413 -------------------------- src/plugins/bearer/blackberry/qbbengine.h | 101 ------- 6 files changed, 601 deletions(-) delete mode 100644 src/plugins/bearer/blackberry/blackberry.json delete mode 100644 src/plugins/bearer/blackberry/blackberry.pro delete mode 100644 src/plugins/bearer/blackberry/main.cpp delete mode 100644 src/plugins/bearer/blackberry/qbbengine.cpp delete mode 100644 src/plugins/bearer/blackberry/qbbengine.h (limited to 'src/plugins/bearer') diff --git a/src/plugins/bearer/bearer.pro b/src/plugins/bearer/bearer.pro index a1434fc2ea..61e6f46ebc 100644 --- a/src/plugins/bearer/bearer.pro +++ b/src/plugins/bearer/bearer.pro @@ -7,7 +7,6 @@ TEMPLATE = subdirs #win32:SUBDIRS += nla win32:SUBDIRS += generic -blackberry:SUBDIRS += blackberry win32:!wince:!winrt: SUBDIRS += nativewifi mac:contains(QT_CONFIG, corewlan):SUBDIRS += corewlan mac:SUBDIRS += generic diff --git a/src/plugins/bearer/blackberry/blackberry.json b/src/plugins/bearer/blackberry/blackberry.json deleted file mode 100644 index 233f05cf53..0000000000 --- a/src/plugins/bearer/blackberry/blackberry.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Keys": [ "blackberry" ] -} diff --git a/src/plugins/bearer/blackberry/blackberry.pro b/src/plugins/bearer/blackberry/blackberry.pro deleted file mode 100644 index c75de3aaad..0000000000 --- a/src/plugins/bearer/blackberry/blackberry.pro +++ /dev/null @@ -1,20 +0,0 @@ -TARGET = qbbbearer - -PLUGIN_TYPE = bearer -PLUGIN_CLASS_NAME = QBBEnginePlugin -load(qt_plugin) - -QT = core-private network-private - -# Uncomment this to enable debugging output for the plugin -#DEFINES += QBBENGINE_DEBUG - -HEADERS += qbbengine.h \ - ../qnetworksession_impl.h \ - ../qbearerengine_impl.h - -SOURCES += qbbengine.cpp \ - ../qnetworksession_impl.cpp \ - main.cpp - -OTHER_FILES += blackberry.json diff --git a/src/plugins/bearer/blackberry/main.cpp b/src/plugins/bearer/blackberry/main.cpp deleted file mode 100644 index ddeaefa75c..0000000000 --- a/src/plugins/bearer/blackberry/main.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Research In Motion -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL21$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** 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 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qbbengine.h" - -#include - -#ifndef QT_NO_BEARERMANAGEMENT - -QT_BEGIN_NAMESPACE - -class QBBEnginePlugin : public QBearerEnginePlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QBearerEngineFactoryInterface" FILE "blackberry.json") - -public: - QBearerEngine *create(const QString &key) const; -}; - -QBearerEngine *QBBEnginePlugin::create(const QString &key) const -{ - if (key == QLatin1String("blackberry")) - return new QBBEngine; - - return 0; -} - -QT_END_NAMESPACE - -#include "main.moc" - -#endif // QT_NO_BEARERMANAGEMENT diff --git a/src/plugins/bearer/blackberry/qbbengine.cpp b/src/plugins/bearer/blackberry/qbbengine.cpp deleted file mode 100644 index d90d9fa217..0000000000 --- a/src/plugins/bearer/blackberry/qbbengine.cpp +++ /dev/null @@ -1,413 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Research In Motion -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL21$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** 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 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qbbengine.h" -#include "../qnetworksession_impl.h" - -#include -#include -#include -#include - -#include - -#ifndef QT_NO_BEARERMANAGEMENT - -#ifdef QBBENGINE_DEBUG -#define qBearerDebug qDebug -#else -#define qBearerDebug QT_NO_QDEBUG_MACRO -#endif - -struct NetstatusInterfaceListCleanupHelper -{ - static inline void cleanup(netstatus_interface_list_t *list) - { - netstatus_free_interfaces(list); - } -}; - -struct NetstatusInterfaceCleanupHelper -{ - static inline void cleanup(char *interface) - { - bps_free(interface); - } -}; - -struct EngineInstanceHolder -{ - EngineInstanceHolder(QBBEngine *engine) : - instance(engine) {} - - QBBEngine *instance; -}; - -Q_GLOBAL_STATIC(QThreadStorage, instanceStorage); - -static QNetworkConfiguration::BearerType -interfaceType(netstatus_interface_type_t type) -{ - switch (type) { - case NETSTATUS_INTERFACE_TYPE_USB: - case NETSTATUS_INTERFACE_TYPE_WIRED: - return QNetworkConfiguration::BearerEthernet; - - case NETSTATUS_INTERFACE_TYPE_WIFI: - return QNetworkConfiguration::BearerWLAN; - - case NETSTATUS_INTERFACE_TYPE_BLUETOOTH_DUN: - return QNetworkConfiguration::BearerBluetooth; - - case NETSTATUS_INTERFACE_TYPE_CELLULAR: - // The exact bearer type is determined in QNetworkConfiguration - // at the time this info is queried, because opposed to the - // information here the type might change quickly. - return QNetworkConfiguration::Bearer2G; - - case NETSTATUS_INTERFACE_TYPE_VPN: - case NETSTATUS_INTERFACE_TYPE_BB: - case NETSTATUS_INTERFACE_TYPE_UNKNOWN: - break; - } - - return QNetworkConfiguration::BearerUnknown; -} - -static QString idForName(const QString &name) -{ - return QStringLiteral("bps:") + name; -} - -QT_BEGIN_NAMESPACE - - -QBBEngine::QBBEngine(QObject *parent) : - QBearerEngineImpl(parent), - pollingRequired(false), - initialized(false) -{ -} - -QBBEngine::~QBBEngine() -{ -} - - -QString QBBEngine::getInterfaceFromId(const QString &id) -{ - const QMutexLocker locker(&mutex); - - return configurationInterface.value(id); -} - -bool QBBEngine::hasIdentifier(const QString &id) -{ - const QMutexLocker locker(&mutex); - - return configurationInterface.contains(id); -} - -void QBBEngine::connectToId(const QString &id) -{ - Q_EMIT connectionError(id, OperationNotSupported); -} - -void QBBEngine::disconnectFromId(const QString &id) -{ - Q_EMIT connectionError(id, OperationNotSupported); -} - -void QBBEngine::initialize() -{ - if (initialized) { - qWarning() << Q_FUNC_INFO << "called, but instance already initialized."; - return; - } - - instanceStorage()->setLocalData(new EngineInstanceHolder(this)); - - if (netstatus_request_events(0) != BPS_SUCCESS) { - qWarning() << Q_FUNC_INFO << "cannot register for network events. Polling enabled."; - - const QMutexLocker locker(&pollingMutex); - pollingRequired = true; - } else { - QAbstractEventDispatcher::instance()->installEventFilter(this); - } - - doRequestUpdate(); -} - -void QBBEngine::requestUpdate() -{ - doRequestUpdate(); -} - -void QBBEngine::doRequestUpdate() -{ - qBearerDebug() << Q_FUNC_INFO << "entered method"; - - netstatus_interface_list_t interfaceList; - - if ((netstatus_get_interfaces(&interfaceList)) != BPS_SUCCESS) { - qBearerDebug() << Q_FUNC_INFO << "cannot retrieve interface list"; - return; - } - - const QScopedPointer holder(&interfaceList); - - QSet currentConfigurations; - - for (int i = 0; i < interfaceList.num_interfaces; i++) { - const char *interface = interfaceList.interfaces[i]; - - qBearerDebug() << Q_FUNC_INFO << "discovered interface" << interface; - - updateConfiguration(interface); - - currentConfigurations << idForName(QString::fromLatin1(interface)); - } - - QMutexLocker locker(&mutex); - - const QStringList keys = accessPointConfigurations.uniqueKeys(); - - locker.unlock(); - - Q_FOREACH (const QString &id, keys) { - if (!currentConfigurations.contains(id)) - removeConfiguration(id); - } - - Q_EMIT updateCompleted(); -} - -QNetworkSession::State QBBEngine::sessionStateForId(const QString &id) -{ - const QMutexLocker locker(&mutex); - - QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); - - if (!ptr || !ptr->isValid) - return QNetworkSession::Invalid; - - if ((ptr->state & QNetworkConfiguration::Active) == QNetworkConfiguration::Active) - return QNetworkSession::Connected; - else if ((ptr->state & QNetworkConfiguration::Discovered) == QNetworkConfiguration::Discovered) - return QNetworkSession::Disconnected; - else if ((ptr->state & QNetworkConfiguration::Defined) == QNetworkConfiguration::Defined) - return QNetworkSession::NotAvailable; - else if ((ptr->state & QNetworkConfiguration::Undefined) == QNetworkConfiguration::Undefined) - return QNetworkSession::NotAvailable; - - return QNetworkSession::Invalid; -} - -QNetworkConfigurationManager::Capabilities QBBEngine::capabilities() const -{ - return QNetworkConfigurationManager::ForcedRoaming; -} - -QNetworkSessionPrivate *QBBEngine::createSessionBackend() -{ - return new QNetworkSessionPrivateImpl; -} - -QNetworkConfigurationPrivatePointer QBBEngine::defaultConfiguration() -{ - char *interface = 0; - - if (netstatus_get_default_interface(&interface) != BPS_SUCCESS) - return QNetworkConfigurationPrivatePointer(); - - if (!interface) - return QNetworkConfigurationPrivatePointer(); - - const QScopedPointer holder(interface); - - const QString id = idForName(QString::fromLatin1(interface)); - - const QMutexLocker locker(&mutex); - - if (accessPointConfigurations.contains(id)) { - qBearerDebug() << Q_FUNC_INFO << "found default interface:" << id; - - return accessPointConfigurations.value(id); - } - - return QNetworkConfigurationPrivatePointer(); -} - -bool QBBEngine::requiresPolling() const -{ - const QMutexLocker locker(&pollingMutex); - - return pollingRequired; -} - -bool QBBEngine::nativeEventFilter(const QByteArray &eventType, void *message, long *result) -{ - Q_UNUSED(eventType); - Q_UNUSED(result); - - bps_event_t * const event = static_cast(message); - - Q_ASSERT(event); - - if (bps_event_get_domain(event) == netstatus_get_domain()) { - qBearerDebug() << Q_FUNC_INFO << "got update request."; - doRequestUpdate(); - } - - return false; -} - -void QBBEngine::updateConfiguration(const char *interface) -{ - netstatus_interface_details_t *details = 0; - - if (netstatus_get_interface_details(interface, &details) != BPS_SUCCESS) { - qBearerDebug() << Q_FUNC_INFO << "cannot retrieve details for interface" << interface; - - return; - } - - const QString name = QString::fromLatin1(netstatus_interface_get_name(details)); - const QString id = idForName(name); - - - const netstatus_interface_type_t type = netstatus_interface_get_type(details); - const netstatus_ip_status_t ipStatus = netstatus_interface_get_ip_status(details); - - netstatus_free_interface_details(&details); - - QNetworkConfiguration::StateFlags state = QNetworkConfiguration::Defined; - - if (ipStatus == NETSTATUS_IP_STATUS_OK) - state |= QNetworkConfiguration::Active; - - QMutexLocker locker(&mutex); - - if (accessPointConfigurations.contains(id)) { - QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); - - bool changed = false; - - QMutexLocker ptrLocker(&ptr->mutex); - - if (!ptr->isValid) { - ptr->isValid = true; - changed = true; - } - - if (ptr->name != name) { - ptr->name = name; - changed = true; - } - - if (ptr->id != id) { - ptr->id = id; - changed = true; - } - - if (ptr->state != state) { - ptr->state = state; - changed = true; - } - - const netstatus_ip_status_t oldIpStatus = ptr->oldIpStatus; - ptr->oldIpStatus = ipStatus; - - ptrLocker.unlock(); - - locker.unlock(); - - if (changed) { - qBearerDebug() << Q_FUNC_INFO << "configuration changed:" << interface; - - Q_EMIT configurationChanged(ptr); - } else { - // maybe Wifi has changed but gateway not yet ready etc. - qBearerDebug() << Q_FUNC_INFO << "configuration has not changed."; - if (oldIpStatus != ipStatus) { // if IP status changed - if (ipStatus != NETSTATUS_IP_STATUS_OK - && ipStatus != NETSTATUS_IP_STATUS_ERROR_NOT_UP - && ipStatus != NETSTATUS_IP_STATUS_ERROR_NOT_CONFIGURED) { - // work around race condition in netstatus API by just checking - // again in 300 ms - QTimer::singleShot(300, this, SLOT(doRequestUpdate())); - } - } - } - - return; - } - - QNetworkConfigurationPrivatePointer ptr(new QNetworkConfigurationPrivate); - - ptr->name = name; - ptr->isValid = true; - ptr->id = id; - ptr->state = state; - ptr->type = QNetworkConfiguration::InternetAccessPoint; - ptr->bearerType = interfaceType(type); - - accessPointConfigurations.insert(id, ptr); - configurationInterface.insert(id, name); - - locker.unlock(); - - qBearerDebug() << Q_FUNC_INFO << "configuration added:" << interface; - - Q_EMIT configurationAdded(ptr); -} - -void QBBEngine::removeConfiguration(const QString &id) -{ - QMutexLocker locker(&mutex); - - QNetworkConfigurationPrivatePointer ptr = - accessPointConfigurations.take(id); - - configurationInterface.remove(ptr->id); - - locker.unlock(); - - Q_EMIT configurationRemoved(ptr); -} - -QT_END_NAMESPACE - -#endif // QT_NO_BEARERMANAGEMENT diff --git a/src/plugins/bearer/blackberry/qbbengine.h b/src/plugins/bearer/blackberry/qbbengine.h deleted file mode 100644 index 08790797ea..0000000000 --- a/src/plugins/bearer/blackberry/qbbengine.h +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Research In Motion -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL21$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** 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 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QBBENGINE_H -#define QBBENGINE_H - -#include "../qbearerengine_impl.h" - -#include -#include - -#ifndef QT_NO_BEARERMANAGEMENT - -struct bps_event_t; - -QT_BEGIN_NAMESPACE - -class QNetworkConfigurationPrivate; -class QNetworkSessionPrivate; - -class QBBEngine : public QBearerEngineImpl, public QAbstractNativeEventFilter -{ - Q_OBJECT - -public: - explicit QBBEngine(QObject *parent = 0); - ~QBBEngine(); - - QString getInterfaceFromId(const QString &id) Q_DECL_OVERRIDE; - bool hasIdentifier(const QString &id) Q_DECL_OVERRIDE; - - void connectToId(const QString &id) Q_DECL_OVERRIDE; - void disconnectFromId(const QString &id) Q_DECL_OVERRIDE; - - Q_INVOKABLE void initialize() Q_DECL_OVERRIDE; - Q_INVOKABLE void requestUpdate() Q_DECL_OVERRIDE; - - QNetworkSession::State sessionStateForId(const QString &id) Q_DECL_OVERRIDE; - - QNetworkConfigurationManager::Capabilities capabilities() const Q_DECL_OVERRIDE; - - QNetworkSessionPrivate *createSessionBackend() Q_DECL_OVERRIDE; - - QNetworkConfigurationPrivatePointer defaultConfiguration() Q_DECL_OVERRIDE; - - bool requiresPolling() const Q_DECL_OVERRIDE; - - bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) Q_DECL_OVERRIDE; - -protected: - void updateConfiguration(const char *interface); - void removeConfiguration(const QString &id); - -private Q_SLOTS: - void doRequestUpdate(); - -private: - QHash configurationInterface; - - mutable QMutex pollingMutex; - - bool pollingRequired; - bool initialized; -}; - - -QT_END_NAMESPACE - -#endif // QT_NO_BEARERMANAGEMENT - -#endif // QBBENGINE_H -- cgit v1.2.3