diff options
author | Yang Li <yang.12.li@nokia.com> | 2012-04-20 12:04:10 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-24 14:58:52 +0200 |
commit | 353e754161a2bdc07fd3ad8709cf3a1425864175 (patch) | |
tree | bc7cb578df68f588b7199ccdc47a6ac4f6165001 /src | |
parent | 2f9cfca1a57e18f54f3ae538c3d51bb73f2ab009 (diff) |
Read wlan info from '/proc/net/wireless' at once
Reduce context switching between kernel and user space to improve performance
Change-Id: I43a71919170194bd54dca929ede63394c285c00f
Reviewed-by: Steffen Hahn <steffen.hahn@nokia.com>
Reviewed-by: Cristiano di Flora <cristiano.di-flora@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/systeminfo/qdeviceinfo_linux.cpp | 2 | ||||
-rw-r--r-- | src/systeminfo/qnetworkinfo_linux.cpp | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/systeminfo/qdeviceinfo_linux.cpp b/src/systeminfo/qdeviceinfo_linux.cpp index fc513e82..f97a9505 100644 --- a/src/systeminfo/qdeviceinfo_linux.cpp +++ b/src/systeminfo/qdeviceinfo_linux.cpp @@ -287,7 +287,7 @@ QString QDeviceInfoPrivate::manufacturer() #if !defined(QT_NO_LIBSYSINFO) manufacturerBuffer = getSysInfoValue("/component/manufacturer"); #else - QFile file("/sys/devices/virtual/dmi/id/sys_vendor"); + QFile file(QStringLiteral("/sys/devices/virtual/dmi/id/sys_vendor")); if (file.open(QIODevice::ReadOnly)) manufacturerBuffer = QString::fromLocal8Bit(file.readAll().simplified().data()); #endif diff --git a/src/systeminfo/qnetworkinfo_linux.cpp b/src/systeminfo/qnetworkinfo_linux.cpp index 591c08ca..6d27efc1 100644 --- a/src/systeminfo/qnetworkinfo_linux.cpp +++ b/src/systeminfo/qnetworkinfo_linux.cpp @@ -51,7 +51,6 @@ #include <QtCore/qfile.h> #include <QtCore/qtextstream.h> #include <QtCore/qtimer.h> - #if !defined(QT_NO_BLUEZ) #include <bluetooth/bluetooth.h> #include <bluetooth/hci.h> @@ -727,9 +726,11 @@ int QNetworkInfoPrivate::getNetworkSignalStrength(QNetworkInfo::NetworkMode mode QTextStream in(&file); QString interfaceName = interfaceForMode(QNetworkInfo::WlanMode, interface).name(); - QString line = in.readLine(); - while (!line.isNull()) { - if (line.left(6).contains(interfaceName)) { + + QStringList lines = in.readAll().split(QStringLiteral("\n")); + for (int i = 0; i < lines.size(); i++) { + QString line = lines.at(i); + if (!line.isNull() && line.left(6).contains(interfaceName)) { // A typical wireless received signal power over a network falls into the range of (-120, -20), // we shift the dbm value, which is read from the field "Quality - level" in "/proc/net/wireless", // from (-120, -20) to (0, 100) by adding 120. In case of outliers, we restrict them to the @@ -749,7 +750,6 @@ int QNetworkInfoPrivate::getNetworkSignalStrength(QNetworkInfo::NetworkMode mode return -1; } } - line = in.readLine(); } break; |