From d4f10f9fe446da2aff65088e5236d6ffcdd034b5 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 24 Feb 2017 12:33:55 +0100 Subject: initial commit --- src/datasource/networkspeed.cpp | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/datasource/networkspeed.cpp (limited to 'src/datasource/networkspeed.cpp') diff --git a/src/datasource/networkspeed.cpp b/src/datasource/networkspeed.cpp new file mode 100644 index 0000000..8888fd4 --- /dev/null +++ b/src/datasource/networkspeed.cpp @@ -0,0 +1,50 @@ +#include "networkspeed.h" + +NetworkSpeed::NetworkSpeed() : + _lastBytes(0), + _lastMs(0), + _file("/sys/class/net/eth0/statistics/rx_bytes") +{ + _timer.start(); +} + +NetworkSpeed::~NetworkSpeed() +{ + // TODO Auto-generated destructor stub +} + +qint64 NetworkSpeed::read() +{ + char buffer[500]; + qint64 ret, now; + if (!_file.open(QIODevice::ReadOnly)) { + return -1; + } + now = _timer.elapsed(); + _file.readLine(buffer, sizeof(buffer)); + _file.close(); + QString line(buffer); + const qint64 counter = (qint64)line.toLongLong(); + if (_lastBytes == 0) { + ret = 0; + } else { + ret = counter - _lastBytes; + } + if (_lastMs < now) { + ret = (ret * 1000) / (now - _lastMs); + } + _lastMs = now; + _lastBytes = counter; + return ret; +} + +const QList& NetworkSpeed::getBars() const +{ + static QList list = QList() << ((qint64)1024 * 1024 * 10); + return list; +} + +qint64 NetworkSpeed::getMaximum() +{ + return ((qint64)1024 * 1024 * 100); +} -- cgit v1.2.3-55-g7522