diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2018-10-26 04:07:01 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2018-10-27 13:30:15 +0200 |
commit | 06772a369f2beef80bb291ded30cbe125a24af56 (patch) | |
tree | c2fc8e4df81273c01c4e847a9a8cb8229ebe1925 /src/src/knetstatsview.h | |
parent | 6a9585138c128efb1be5230b71a7afdba8d1aea7 (diff) | |
download | knetstats-06772a369f2beef80bb291ded30cbe125a24af56.tar.gz knetstats-06772a369f2beef80bb291ded30cbe125a24af56.zip |
Fix structure of directories
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'src/src/knetstatsview.h')
-rw-r--r-- | src/src/knetstatsview.h | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/src/src/knetstatsview.h b/src/src/knetstatsview.h deleted file mode 100644 index e8cc0b8..0000000 --- a/src/src/knetstatsview.h +++ /dev/null @@ -1,260 +0,0 @@ -/*************************************************************************** -* (c) 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net> * -* Copyright (C) 2004-2005 by Hugo Parente Lima * -* hugo_pl@users.sourceforge.net * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License as published by * -* the Free Software Foundation; either version 2 of the License, or * -* (at your option) any later version. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * -***************************************************************************/ - -#ifndef KNETSTATSVIEW_H -#define KNETSTATSVIEW_H - -#include <ksystemtray.h> -#include <tqpixmap.h> -#include <tqstringlist.h> -#include <tqcolor.h> - -#include <arpa/inet.h> -#include <linux/netdevice.h> - -class TQTimer; -class TQMouseEvent; -class TQPainter; -class TQPaintEvent; -class Statistics; -class KNetStats; - -/** -* Main class -*/ -class KNetStatsView : public KSystemTray -{ - Q_OBJECT - - - enum { - HISTORY_SIZE = 50, // Speed history buffer size - SPEED_BUFFER_SIZE = 10 // Speed normalization buffer size - }; - -public: - /** - * KNetstats view mode on system tray. - */ - enum Mode { - Icon, Text, Graphic - }; - - /** - * Visualization options. - */ - struct Options { - // general - int mUpdateInterval; - Mode mViewMode; - bool mMonitoring; - // txt view - TQFont mTxtFont; - TQColor mTxtUplColor; - TQColor mTxtDldColor; - // icon view - int mTheme; - // chart view - TQColor mChartUplColor; - TQColor mChartDldColor; - TQColor mChartBgColor; - bool mChartTransparentBackground; - }; - - KNetStatsView(KNetStats* parent, const TQString& interface); - ~KNetStatsView(); - - void say(const TQString& message); - void updateViewOptions(); - // read a value from /sys/class/net/interface/name - unsigned long readInterfaceNumValue(const char* name); - // read a value from /sys/class/net/interface/name - TQString readInterfaceStringValue(const char* name, int maxlength); - TQString getIp(); - TQString getNetmask(); - - const double* speedHistoryRx() const { return mSpeedHistoryRx; } - const double* speedHistoryTx() const { return mSpeedHistoryTx; } - const int historyBufferSize() const { return HISTORY_SIZE; } - const int* historyPointer() const { return &mSpeedHistoryPtr; } - const double* maxSpeed() const { return &mMaxSpeed; } - - /// Return a copy of the current view options. - Options options() const { return mOptions; } - /// read the interface view options - static void readOptions( const TQString& name, Options* opts, bool defaultVisibility = false ); - - /// The current monitored network interface - inline const TQString& interface() const; - /// The current Update Interval in miliseconds - inline int updateInterval() const; - /// We are in textmode? - inline Mode viewMode() const; - - /// Total of bytes receiveds - inline unsigned long totalBytesRx() const; - /// Total of bytes transmitted - inline unsigned long totalBytesTx() const; - /// Total of packets receiveds - inline unsigned long totalPktRx() const; - /// Total of packets transmitted - inline unsigned long totalPktTx() const; - /// RX Speed in bytes per second - inline double byteSpeedRx() const; - /// TX Speed in bytes per second - inline double byteSpeedTx() const; - /// RX Speed in packets per second - inline double pktSpeedRx() const; - /// TX Speed in packets per second - inline double pktSpeedTx() const; - -protected: - void mousePressEvent( TQMouseEvent* ev ); - void paintEvent( TQPaintEvent* ev ); - -private: - - int mFdSock; // Kernel-knetstats socket - struct ifreq mDevInfo; // info struct about our interface - - - TQString mSysDevPath; // Path to the device. - bool mCarrier; // Interface carrier is on? - bool mConnected; // Interface exists? - - TDEPopupMenu* mContextMenu; // Global ContextMenu - Statistics* mStatistics; // Statistics window - TQString mInterface; // Current interface - Options mOptions; // View options - - // Icons - TQPixmap mIconError, mIconNone, mIconTx, mIconRx, mIconBoth; - TQPixmap* mCurrentIcon; // Current state - TQTimer* mTimer; // Timer - - // Rx e Tx to bytes and packets - unsigned long mBRx, mBTx, mPRx, mPTx; - // Statistics - unsigned long mTotalBytesRx, mTotalBytesTx, mTotalPktRx, mTotalPktTx; - // Speed buffers - double mSpeedBufferRx[SPEED_BUFFER_SIZE], mSpeedBufferTx[SPEED_BUFFER_SIZE]; - double mSpeedBufferPRx[SPEED_BUFFER_SIZE], mSpeedBufferPTx[SPEED_BUFFER_SIZE]; - // pointer to current speed buffer position - int mSpeedBufferPtr; - - bool mFirstUpdate; - - // History buffer TODO: Make it configurable! - double mSpeedHistoryRx[HISTORY_SIZE]; - double mSpeedHistoryTx[HISTORY_SIZE]; - int mSpeedHistoryPtr; - double mMaxSpeed; - int mMaxSpeedAge; - - - // setup the view. - void setup(); - void drawText(TQPainter& paint); - void drawGraphic(TQPainter& paint); - // Reset speed and history buffers - void resetBuffers(); - // calc tha max. speed stored in the history buffer - inline void calcMaxSpeed(); - // calc the speed using a speed buffer - inline double calcSpeed(const double* buffer) const; - - bool openFdSocket(); - -private slots: - // Called by the timer to update statistics - void updateStats(); - -}; - -void KNetStatsView::calcMaxSpeed() { - double max = 0.0; - int ptr = mSpeedHistoryPtr; - for (int i = 0; i < HISTORY_SIZE; ++i) { - if (mSpeedHistoryRx[i] > max) { - max = mSpeedHistoryRx[i]; - ptr = i; - } - if (mSpeedHistoryTx[i] > max) { - max = mSpeedHistoryTx[i]; - ptr = i; - } - } - mMaxSpeed = max; - mMaxSpeedAge = (mSpeedHistoryPtr > ptr) ? (mSpeedHistoryPtr - ptr) : (mSpeedHistoryPtr + HISTORY_SIZE - ptr); -} - -double KNetStatsView::calcSpeed(const double* buffer) const { - double total = 0.0; - for (int i = 0; i < SPEED_BUFFER_SIZE; ++i) - total += buffer[i]; - return total/SPEED_BUFFER_SIZE; -} - -const TQString& KNetStatsView::interface() const { - return mInterface; -} - -int KNetStatsView::updateInterval() const { - return mOptions.mUpdateInterval; -} - -KNetStatsView::Mode KNetStatsView::viewMode() const { - return mOptions.mViewMode; -} - -unsigned long KNetStatsView::totalBytesRx() const { - return mTotalBytesRx; -} - -unsigned long KNetStatsView::totalBytesTx() const { - return mTotalBytesTx; -} - -unsigned long KNetStatsView::totalPktRx() const { - return mTotalPktRx; -} - -unsigned long KNetStatsView::totalPktTx() const { - return mTotalPktTx; -} - -double KNetStatsView::byteSpeedRx() const { - return mSpeedHistoryRx[mSpeedHistoryPtr]; -} - -double KNetStatsView::byteSpeedTx() const { - return mSpeedHistoryTx[mSpeedHistoryPtr]; -} - -double KNetStatsView::pktSpeedRx() const { - return calcSpeed(mSpeedBufferPRx); -} - -double KNetStatsView::pktSpeedTx() const { - return calcSpeed(mSpeedBufferPTx); -} - -#endif |