QNetworkManagerEngine: port away from Java-style iterators

They are slower, more annoying, and not safer than
their STL counterparts.

Port to C++11 range-for, or to "auto it, end" for
loops in cases where the key was also accessed.

Change-Id: Ib27608ddbe9c0775092a1c6495731ad324727d3e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Marc Mutz 2016-08-06 15:11:44 +03:00
parent 3400e7ee7f
commit 7305b3e828

View File

@ -555,12 +555,11 @@ void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path,
bool QNetworkManagerEngine::isConnectionActive(const QString &settingsPath) const bool QNetworkManagerEngine::isConnectionActive(const QString &settingsPath) const
{ {
QHashIterator<QString, QNetworkManagerConnectionActive*> i(activeConnectionsList); for (QNetworkManagerConnectionActive *activeConnection : activeConnectionsList) {
while (i.hasNext()) { if (activeConnection->connection().path() == settingsPath) {
i.next(); const auto state = activeConnection->state();
if (i.value()->connection().path() == settingsPath) { if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATING
if (i.value()->state() == NM_ACTIVE_CONNECTION_STATE_ACTIVATING || state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) {
|| i.value()->state() == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) {
return true; return true;
} else { } else {
break; break;
@ -848,9 +847,7 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri
if (ofonoManager && ofonoManager->isValid()) { if (ofonoManager && ofonoManager->isValid()) {
const QString contextPart = connectionPath.section('/', -1); const QString contextPart = connectionPath.section('/', -1);
QHashIterator<QString, QOfonoDataConnectionManagerInterface*> i(ofonoContextManagers); for (auto i = ofonoContextManagers.cbegin(), end = ofonoContextManagers.cend(); i != end; ++i) {
while (i.hasNext()) {
i.next();
const QString path = i.key() + QLatin1Char('/') +contextPart; const QString path = i.key() + QLatin1Char('/') +contextPart;
if (isActiveContext(path)) { if (isActiveContext(path)) {
cpPriv->state |= QNetworkConfiguration::Active; cpPriv->state |= QNetworkConfiguration::Active;
@ -867,10 +864,8 @@ bool QNetworkManagerEngine::isActiveContext(const QString &contextPath) const
{ {
if (ofonoManager && ofonoManager->isValid()) { if (ofonoManager && ofonoManager->isValid()) {
const QString contextPart = contextPath.section('/', -1); const QString contextPart = contextPath.section('/', -1);
QHashIterator<QString, QOfonoDataConnectionManagerInterface*> i(ofonoContextManagers); for (QOfonoDataConnectionManagerInterface *iface : ofonoContextManagers) {
while (i.hasNext()) { const PathPropertiesList list = iface->contextsWithProperties();
i.next();
PathPropertiesList list = i.value()->contextsWithProperties();
for (int i = 0; i < list.size(); ++i) { for (int i = 0; i < list.size(); ++i) {
if (list.at(i).path.path().contains(contextPart)) { if (list.at(i).path.path().contains(contextPart)) {
return list.at(i).properties.value(QStringLiteral("Active")).toBool(); return list.at(i).properties.value(QStringLiteral("Active")).toBool();
@ -1012,10 +1007,7 @@ QNetworkSessionPrivate *QNetworkManagerEngine::createSessionBackend()
QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration() QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration()
{ {
QHashIterator<QString, QNetworkManagerConnectionActive*> i(activeConnectionsList); for (QNetworkManagerConnectionActive *activeConnection : qAsConst(activeConnectionsList)) {
while (i.hasNext()) {
i.next();
QNetworkManagerConnectionActive *activeConnection = i.value();
if ((activeConnection->defaultRoute() || activeConnection->default6Route())) { if ((activeConnection->defaultRoute() || activeConnection->default6Route())) {
return accessPointConfigurations.value(activeConnection->connection().path()); return accessPointConfigurations.value(activeConnection->connection().path());
} }
@ -1027,9 +1019,7 @@ QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration(
QNetworkConfiguration::BearerType QNetworkManagerEngine::currentBearerType(const QString &id) const QNetworkConfiguration::BearerType QNetworkManagerEngine::currentBearerType(const QString &id) const
{ {
QString contextPart = id.section('/', -1); QString contextPart = id.section('/', -1);
QHashIterator<QString, QOfonoDataConnectionManagerInterface*> i(ofonoContextManagers); for (auto i = ofonoContextManagers.begin(), end = ofonoContextManagers.end(); i != end; ++i) {
while (i.hasNext()) {
i.next();
QString contextPath = i.key() + QLatin1Char('/') +contextPart; QString contextPath = i.key() + QLatin1Char('/') +contextPart;
if (i.value()->contexts().contains(contextPath)) { if (i.value()->contexts().contains(contextPath)) {
@ -1058,10 +1048,8 @@ QNetworkConfiguration::BearerType QNetworkManagerEngine::currentBearerType(const
QString QNetworkManagerEngine::contextName(const QString &path) const QString QNetworkManagerEngine::contextName(const QString &path) const
{ {
QString contextPart = path.section('/', -1); QString contextPart = path.section('/', -1);
QHashIterator<QString, QOfonoDataConnectionManagerInterface*> i(ofonoContextManagers); for (QOfonoDataConnectionManagerInterface *iface : ofonoContextManagers) {
while (i.hasNext()) { const PathPropertiesList list = iface->contextsWithProperties();
i.next();
PathPropertiesList list = i.value()->contextsWithProperties();
for (int i = 0; i < list.size(); ++i) { for (int i = 0; i < list.size(); ++i) {
if (list.at(i).path.path().contains(contextPart)) { if (list.at(i).path.path().contains(contextPart)) {
return list.at(i).properties.value(QStringLiteral("Name")).toString(); return list.at(i).properties.value(QStringLiteral("Name")).toString();