bearer plugins: eradicate Java-style iterators and Q_FOREACH
This is the simple part of the job, removing Q_FOREACH loops which are obviously safe to be replaced by C++11 range-for. In QNetworkManagerEngine::sessionStateForId(), instead of iterating over QHash::keys(), iterate over the QHash directly (using C++11 range-for, as we're only using the values, not the keys). In QNetworkManagerEngine::connectToId(), simplify the loop body by merging three identical if blocks into one. Saves ~1.7KiB accumulated over the three Linux bearer plugins: connman, generic, nm (optimized GCC 6.1 Linux AMD64 build). Change-Id: Ic66139c25f7e2173f5a919927e269b873334d2c8 Reviewed-by: Lorn Potter <lorn.potter@canonical.com>bb10
parent
73331eebf8
commit
ed9f8a0e9d
|
|
@ -93,9 +93,9 @@ void QConnmanEngine::initialize()
|
|||
connect(connmanManager,SIGNAL(servicesReady(QStringList)),this,SLOT(servicesReady(QStringList)));
|
||||
connect(connmanManager,SIGNAL(scanFinished(bool)),this,SLOT(finishedScan(bool)));
|
||||
|
||||
foreach (const QString &servPath, connmanManager->getServices()) {
|
||||
const auto servPaths = connmanManager->getServices();
|
||||
for (const QString &servPath : servPaths)
|
||||
addServiceConfiguration(servPath);
|
||||
}
|
||||
Q_EMIT updateCompleted();
|
||||
}
|
||||
|
||||
|
|
@ -115,9 +115,8 @@ void QConnmanEngine::changedModem()
|
|||
void QConnmanEngine::servicesReady(const QStringList &list)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
foreach (const QString &servPath, list) {
|
||||
for (const QString &servPath : list)
|
||||
addServiceConfiguration(servPath);
|
||||
}
|
||||
|
||||
Q_EMIT updateCompleted();
|
||||
}
|
||||
|
|
@ -329,7 +328,8 @@ QNetworkSessionPrivate *QConnmanEngine::createSessionBackend()
|
|||
QNetworkConfigurationPrivatePointer QConnmanEngine::defaultConfiguration()
|
||||
{
|
||||
const QMutexLocker locker(&mutex);
|
||||
Q_FOREACH (const QString &servPath, connmanManager->getServices()) {
|
||||
const auto servPaths = connmanManager->getServices();
|
||||
for (const QString &servPath : servPaths) {
|
||||
if (connmanServiceInterfaces.contains(servPath)) {
|
||||
if (accessPointConfigurations.contains(servPath))
|
||||
return accessPointConfigurations.value(servPath);
|
||||
|
|
@ -461,7 +461,8 @@ QNetworkConfiguration::BearerType QConnmanEngine::ofonoTechToBearerType(const QS
|
|||
|
||||
bool QConnmanEngine::isRoamingAllowed(const QString &context)
|
||||
{
|
||||
foreach (const QString &dcPath, ofonoContextManager->contexts()) {
|
||||
const auto dcPaths = ofonoContextManager->contexts();
|
||||
for (const QString &dcPath : dcPaths) {
|
||||
if (dcPath.contains(context.section("_",-1))) {
|
||||
return ofonoContextManager->roamingAllowed();
|
||||
}
|
||||
|
|
@ -557,7 +558,8 @@ bool QConnmanEngine::requiresPolling() const
|
|||
|
||||
void QConnmanEngine::reEvaluateCellular()
|
||||
{
|
||||
Q_FOREACH (const QString &servicePath, connmanManager->getServices()) {
|
||||
const auto servicePaths = connmanManager->getServices();
|
||||
for (const QString &servicePath : servicePaths) {
|
||||
if (servicePath.contains("cellular") && accessPointConfigurations.contains(servicePath)) {
|
||||
configurationChange(connmanServiceInterfaces.value(servicePath));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,10 +144,9 @@ void QConnmanManagerInterface::servicesReply(QDBusPendingCallWatcher *call)
|
|||
qDebug() << serv_reply.error().message();
|
||||
} else {
|
||||
servicesList.clear(); //connman list changes order
|
||||
ConnmanMap connmanobj;
|
||||
Q_FOREACH (connmanobj, serv_reply.value()) {
|
||||
const ConnmanMapList connmanobjs = serv_reply.value();
|
||||
for (const ConnmanMap &connmanobj : connmanobjs)
|
||||
servicesList << connmanobj.objectPath.path();
|
||||
}
|
||||
Q_EMIT servicesReady(servicesList);
|
||||
}
|
||||
call->deleteLater();
|
||||
|
|
@ -181,7 +180,7 @@ void QConnmanManagerInterface::connectNotify(const QMetaMethod &signal)
|
|||
void QConnmanManagerInterface::onServicesChanged(const ConnmanMapList &changed, const QList<QDBusObjectPath> &removed)
|
||||
{
|
||||
servicesList.clear(); //connman list changes order
|
||||
Q_FOREACH (const ConnmanMap &connmanobj, changed) {
|
||||
for (const ConnmanMap &connmanobj : changed) {
|
||||
const QString svcPath(connmanobj.objectPath.path());
|
||||
servicesList << svcPath;
|
||||
}
|
||||
|
|
@ -225,7 +224,8 @@ QStringList QConnmanManagerInterface::getTechnologies()
|
|||
QDBusPendingReply<ConnmanMapList> reply = call(QLatin1String("GetTechnologies"));
|
||||
reply.waitForFinished();
|
||||
if (!reply.isError()) {
|
||||
Q_FOREACH (const ConnmanMap &map, reply.value()) {
|
||||
const ConnmanMapList maps = reply.value();
|
||||
for (const ConnmanMap &map : maps) {
|
||||
if (!technologiesMap.contains(map.objectPath.path())) {
|
||||
technologyAdded(map.objectPath, map.propertyMap);
|
||||
}
|
||||
|
|
@ -241,9 +241,9 @@ QStringList QConnmanManagerInterface::getServices()
|
|||
QDBusPendingReply<ConnmanMapList> reply = call(QLatin1String("GetServices"));
|
||||
reply.waitForFinished();
|
||||
if (!reply.isError()) {
|
||||
Q_FOREACH (const ConnmanMap &map, reply.value()) {
|
||||
const ConnmanMapList maps = reply.value();
|
||||
for (const ConnmanMap &map : maps)
|
||||
servicesList << map.objectPath.path();
|
||||
}
|
||||
}
|
||||
}
|
||||
return servicesList;
|
||||
|
|
|
|||
|
|
@ -103,9 +103,9 @@ QStringList QOfonoManagerInterface::getModems()
|
|||
QDBusPendingReply<PathPropertiesList> reply = callWithArgumentList(QDBus::Block, QLatin1String("GetModems"), argumentList);
|
||||
reply.waitForFinished();
|
||||
if (!reply.isError()) {
|
||||
foreach (const ObjectPathProperties &modem, reply.value()) {
|
||||
const auto modems = reply.value();
|
||||
for (const ObjectPathProperties &modem : modems)
|
||||
modemList << modem.path.path();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -114,8 +114,8 @@ QStringList QOfonoManagerInterface::getModems()
|
|||
|
||||
QString QOfonoManagerInterface::currentModem()
|
||||
{
|
||||
QStringList modems = getModems();
|
||||
foreach (const QString &modem, modems) {
|
||||
const QStringList modems = getModems();
|
||||
for (const QString &modem : modems) {
|
||||
QOfonoModemInterface device(modem);
|
||||
if (device.isPowered() && device.isOnline()
|
||||
&& device.interfaces().contains(QStringLiteral("org.ofono.NetworkRegistration")))
|
||||
|
|
@ -266,9 +266,9 @@ QStringList QOfonoDataConnectionManagerInterface::contexts()
|
|||
QDBusPendingReply<PathPropertiesList > reply = call(QLatin1String("GetContexts"));
|
||||
reply.waitForFinished();
|
||||
if (!reply.isError()) {
|
||||
foreach (const ObjectPathProperties &context, reply.value()) {
|
||||
const auto contexts = reply.value();
|
||||
for (const ObjectPathProperties &context : contexts)
|
||||
contextList << context.path.path();
|
||||
}
|
||||
}
|
||||
}
|
||||
return contextList;
|
||||
|
|
|
|||
|
|
@ -127,7 +127,8 @@ void QNetworkManagerEngine::setupConfigurations()
|
|||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
// Get active connections.
|
||||
foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) {
|
||||
const auto acPaths = managerInterface->activeConnections();
|
||||
for (const QDBusObjectPath &acPath : acPaths) {
|
||||
|
||||
if (activeConnectionsList.contains(acPath.path()))
|
||||
continue;
|
||||
|
|
@ -144,8 +145,10 @@ void QNetworkManagerEngine::setupConfigurations()
|
|||
connectionInterfaces.insert(activeConnection->connection().path(),device.networkInterface());
|
||||
}
|
||||
}
|
||||
|
||||
// Get connections.
|
||||
foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) {
|
||||
const auto settingsPaths = systemSettings->listConnections();
|
||||
for (const QDBusObjectPath &settingsPath : settingsPaths) {
|
||||
locker.unlock();
|
||||
if (!hasIdentifier(settingsPath.path()))
|
||||
newConnection(settingsPath, systemSettings); //add system connection configs
|
||||
|
|
@ -189,21 +192,13 @@ void QNetworkManagerEngine::connectToId(const QString &id)
|
|||
if (isConnectionActive(settingsPath))
|
||||
return;
|
||||
|
||||
QHashIterator<QString, QNetworkManagerInterfaceDevice*> i(interfaceDevices);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
if (i.value()->deviceType() == DEVICE_TYPE_ETHERNET &&
|
||||
connectionType == DEVICE_TYPE_ETHERNET) {
|
||||
dbusDevicePath = i.key();
|
||||
break;
|
||||
} else if (i.value()->deviceType() == DEVICE_TYPE_WIFI &&
|
||||
connectionType == DEVICE_TYPE_WIFI) {
|
||||
dbusDevicePath = i.key();
|
||||
break;
|
||||
} else if (i.value()->deviceType() == DEVICE_TYPE_MODEM &&
|
||||
connectionType == DEVICE_TYPE_MODEM) {
|
||||
dbusDevicePath = i.key();
|
||||
break;
|
||||
for (auto i = interfaceDevices.cbegin(), end = interfaceDevices.cend(); i != end; ++i) {
|
||||
const auto type = i.value()->deviceType();
|
||||
if (type == DEVICE_TYPE_ETHERNET || type == DEVICE_TYPE_WIFI || type == DEVICE_TYPE_MODEM) {
|
||||
if (type == connectionType) {
|
||||
dbusDevicePath = i.key();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -230,9 +225,7 @@ void QNetworkManagerEngine::disconnectFromId(const QString &id)
|
|||
return;
|
||||
}
|
||||
|
||||
QHashIterator<QString, QNetworkManagerConnectionActive*> i(activeConnectionsList);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
for (auto i = activeConnectionsList.cbegin(), end = activeConnectionsList.cend(); i != end; ++i) {
|
||||
if (id == i.value()->connection().path() && accessPointConfigurations.contains(id)) {
|
||||
managerInterface->deactivateConnection(QDBusObjectPath(i.key()));
|
||||
break;
|
||||
|
|
@ -243,11 +236,8 @@ void QNetworkManagerEngine::disconnectFromId(const QString &id)
|
|||
void QNetworkManagerEngine::requestUpdate()
|
||||
{
|
||||
if (managerInterface && managerInterface->wirelessEnabled()) {
|
||||
QHashIterator<QString, QNetworkManagerInterfaceDeviceWireless *> i(wirelessDevices);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
i.value()->requestScan();
|
||||
}
|
||||
for (auto *wirelessDevice : qAsConst(wirelessDevices))
|
||||
wirelessDevice->requestScan();
|
||||
}
|
||||
QMetaObject::invokeMethod(this, "updateCompleted", Qt::QueuedConnection);
|
||||
}
|
||||
|
|
@ -255,20 +245,17 @@ void QNetworkManagerEngine::requestUpdate()
|
|||
void QNetworkManagerEngine::interfacePropertiesChanged(const QMap<QString, QVariant> &properties)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
QMapIterator<QString, QVariant> i(properties);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
|
||||
for (auto i = properties.cbegin(), end = properties.cend(); i != end; ++i) {
|
||||
if (i.key() == QLatin1String("ActiveConnections")) {
|
||||
// Active connections changed, update configurations.
|
||||
|
||||
QList<QDBusObjectPath> activeConnections =
|
||||
qdbus_cast<QList<QDBusObjectPath> >(i.value().value<QDBusArgument>());
|
||||
const auto activeConnections = qdbus_cast<QList<QDBusObjectPath> >(i.value().value<QDBusArgument>());
|
||||
|
||||
QStringList identifiers = accessPointConfigurations.keys();
|
||||
QStringList priorActiveConnections = activeConnectionsList.keys();
|
||||
|
||||
foreach (const QDBusObjectPath &acPath, activeConnections) {
|
||||
for (const QDBusObjectPath &acPath : activeConnections) {
|
||||
priorActiveConnections.removeOne(acPath.path());
|
||||
QNetworkManagerConnectionActive *activeConnection =
|
||||
activeConnectionsList.value(acPath.path());
|
||||
|
|
@ -399,7 +386,8 @@ void QNetworkManagerEngine::wiredCarrierChanged(bool carrier)
|
|||
if (!deviceWired)
|
||||
return;
|
||||
QMutexLocker locker(&mutex);
|
||||
foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) {
|
||||
const auto settingsPaths = systemSettings->listConnections();
|
||||
for (const QDBusObjectPath &settingsPath : settingsPaths) {
|
||||
for (int i = 0; i < connections.count(); ++i) {
|
||||
QNetworkManagerSettingsConnection *connection = connections.at(i);
|
||||
if (connection->getType() == DEVICE_TYPE_ETHERNET
|
||||
|
|
@ -477,12 +465,9 @@ void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path,
|
|||
cpPriv->state |= QNetworkConfiguration::Active;
|
||||
|
||||
if (deviceType == DEVICE_TYPE_ETHERNET) {
|
||||
QHashIterator<QString, QNetworkManagerInterfaceDevice*> i(interfaceDevices);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
if (i.value()->deviceType() == deviceType) {
|
||||
QNetworkManagerInterfaceDeviceWired *wiredDevice
|
||||
= wiredDevices.value(i.value()->path());
|
||||
for (const auto *interfaceDevice : interfaceDevices) {
|
||||
if (interfaceDevice->deviceType() == deviceType) {
|
||||
auto *wiredDevice = wiredDevices.value(interfaceDevice->path());
|
||||
if (wiredDevice && wiredDevice->carrier()) {
|
||||
cpPriv->state |= QNetworkConfiguration::Discovered;
|
||||
}
|
||||
|
|
@ -559,7 +544,8 @@ void QNetworkManagerEngine::updateConnection()
|
|||
QNetworkConfigurationPrivate *cpPriv = parseConnection(settingsPath, connection->getSettings());
|
||||
|
||||
// Check if connection is active.
|
||||
foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) {
|
||||
const auto acPaths = managerInterface->activeConnections();
|
||||
for (const QDBusObjectPath &acPath : acPaths) {
|
||||
QNetworkManagerConnectionActive activeConnection(acPath.path());
|
||||
|
||||
if (activeConnection.connection().path() == settingsPath &&
|
||||
|
|
@ -635,7 +621,8 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri
|
|||
if (connectionType == QLatin1String("802-3-ethernet")) {
|
||||
cpPriv->bearerType = QNetworkConfiguration::BearerEthernet;
|
||||
|
||||
foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) {
|
||||
const auto devicePaths = managerInterface->getDevices();
|
||||
for (const QDBusObjectPath &devicePath : devicePaths) {
|
||||
QNetworkManagerInterfaceDevice device(devicePath.path(),this);
|
||||
if (device.deviceType() == DEVICE_TYPE_ETHERNET) {
|
||||
QNetworkManagerInterfaceDeviceWired *wiredDevice = wiredDevices.value(device.path());
|
||||
|
|
@ -729,9 +716,7 @@ QNetworkSession::State QNetworkManagerEngine::sessionStateForId(const QString &i
|
|||
if (!ptr->isValid)
|
||||
return QNetworkSession::Invalid;
|
||||
|
||||
foreach (const QString &acPath, activeConnectionsList.keys()) {
|
||||
QNetworkManagerConnectionActive *activeConnection = activeConnectionsList.value(acPath);
|
||||
|
||||
for (QNetworkManagerConnectionActive *activeConnection : activeConnectionsList) {
|
||||
const QString identifier = activeConnection->connection().path();
|
||||
|
||||
if (id == identifier) {
|
||||
|
|
@ -932,7 +917,8 @@ void QNetworkManagerEngine::ofonoRegistered(const QString &)
|
|||
}
|
||||
ofonoManager = new QOfonoManagerInterface(this);
|
||||
if (ofonoManager && ofonoManager->isValid()) {
|
||||
Q_FOREACH (const QString &modem, ofonoManager->getModems()) {
|
||||
const auto modems = ofonoManager->getModems();
|
||||
for (const QString &modem : modems) {
|
||||
QOfonoDataConnectionManagerInterface *ofonoContextManager
|
||||
= new QOfonoDataConnectionManagerInterface(modem,this);
|
||||
ofonoContextManagers.insert(modem, ofonoContextManager);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,8 @@ static QBearerEngineImpl *getEngineFromId(const QString &id)
|
|||
{
|
||||
QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
|
||||
|
||||
foreach (QBearerEngine *engine, priv->engines()) {
|
||||
const auto engines = priv->engines();
|
||||
for (QBearerEngine *engine : engines) {
|
||||
QBearerEngineImpl *engineImpl = qobject_cast<QBearerEngineImpl *>(engine);
|
||||
if (engineImpl && engineImpl->hasIdentifier(id))
|
||||
return engineImpl;
|
||||
|
|
@ -306,7 +307,8 @@ void QNetworkSessionPrivateImpl::updateStateFromServiceNetwork()
|
|||
{
|
||||
QNetworkSession::State oldState = state;
|
||||
|
||||
foreach (const QNetworkConfiguration &config, serviceConfig.children()) {
|
||||
const auto configs = serviceConfig.children();
|
||||
for (const QNetworkConfiguration &config : configs) {
|
||||
if ((config.state() & QNetworkConfiguration::Active) != QNetworkConfiguration::Active)
|
||||
continue;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue