summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYang Li <yang.12.li@nokia.com>2012-04-20 12:04:10 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-24 14:58:52 +0200
commit353e754161a2bdc07fd3ad8709cf3a1425864175 (patch)
treebc7cb578df68f588b7199ccdc47a6ac4f6165001 /src
parent2f9cfca1a57e18f54f3ae538c3d51bb73f2ab009 (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.cpp2
-rw-r--r--src/systeminfo/qnetworkinfo_linux.cpp10
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;