summaryrefslogtreecommitdiffstats
path: root/RateCalculator.h
blob: a8bec1c9f503bd850aa6f28d9fcb1271307c2ba1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef RATECALCULATOR_H
#define RATECALCULATOR_H

#include <QtGlobal>
#include <QElapsedTimer>
#include <QLinkedList>
#include <QPair>

class RateCalculator
{
public:
	void addBytes(qint64 bytes);
	void updateTotalBytes(qint64 bytes);
	void start();
	void stop();
	void reset();
	double rate(qint64 interval = -1) const;
private:
	QElapsedTimer m_timer;
	QLinkedList<QPair<qint64, qint64> > m_segments;
	qint64 m_byteSum;
};

#endif // RATECALCULATOR_H