Add traffic monitor
[novacoin.git] / src / qt / trafficgraphwidget.h
diff --git a/src/qt/trafficgraphwidget.h b/src/qt/trafficgraphwidget.h
new file mode 100644 (file)
index 0000000..50571e0
--- /dev/null
@@ -0,0 +1,48 @@
+// Copyright (c) 2011-2013 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_QT_TRAFFICGRAPHWIDGET_H
+#define BITCOIN_QT_TRAFFICGRAPHWIDGET_H
+
+#include <QWidget>
+#include <QQueue>
+
+class ClientModel;
+
+QT_BEGIN_NAMESPACE
+class QPaintEvent;
+class QTimer;
+QT_END_NAMESPACE
+
+class TrafficGraphWidget : public QWidget
+{
+    Q_OBJECT
+
+public:
+    explicit TrafficGraphWidget(QWidget *parent = 0);
+    void setClientModel(ClientModel *model);
+    int getGraphRangeMins() const;
+
+protected:
+    void paintEvent(QPaintEvent *);
+
+public slots:
+    void updateRates();
+    void setGraphRangeMins(int mins);
+    void clear();
+
+private:
+    void paintPath(QPainterPath &path, QQueue<float> &samples);
+
+    QTimer *timer;
+    float fMax;
+    int nMins;
+    QQueue<float> vSamplesIn;
+    QQueue<float> vSamplesOut;
+    quint64 nLastBytesIn;
+    quint64 nLastBytesOut;
+    ClientModel *clientModel;
+};
+
+#endif // BITCOIN_QT_TRAFFICGRAPHWIDGET_H