From 71d3b718ba0f1f4c3a7aad11b5c297ead5cfd95a Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Fri, 31 Oct 2014 16:45:55 -0400 Subject: initial commit, still sucks --- statistics.hpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 statistics.hpp (limited to 'statistics.hpp') diff --git a/statistics.hpp b/statistics.hpp new file mode 100644 index 0000000..c916ecb --- /dev/null +++ b/statistics.hpp @@ -0,0 +1,52 @@ +#ifndef CBM_STATISTICS_H +#define CBM_STATISTICS_H + +#include +#include +#include + +namespace statistics { + +struct Statistics { + struct timeval timestamp; + unsigned long long rx_bytes, rx_packets, rx_errs, rx_drop, rx_fifo, + rx_frame, rx_compressed, rx_multicast, + tx_bytes, tx_packets, tx_errs, tx_drop, tx_fifo, + tx_frame, tx_compressed, tx_multicast; +}; + +class Interface { + public: + Interface(const std::string& name); + + const std::string& getName() const; + + void setUpdated(bool updated); + bool getUpdated() const; + + void update(const Statistics& statistics); + + double getReceiveSpeed() const; + double getTransmitSpeed() const; + + private: + std::string name_; + bool updated_; + Statistics statistics_[2]; + double receiveSpeed_, transmitSpeed_; +}; + +class Reader { + public: + void update(); + + typedef std::list Interfaces; + const Interfaces& getInterfaces() const; + + private: + Interfaces interfaces_; +}; + +} // namespace statistics + +#endif -- cgit v1.2.3