From 9115e4f438379c8a8edd4e4069fe56cd2ab46c4b Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Wed, 5 Nov 2014 22:25:50 -0500 Subject: turn that C++ into C --- fsbm.cpp | 133 --------------------------------------------------------------- 1 file changed, 133 deletions(-) delete mode 100644 fsbm.cpp (limited to 'fsbm.cpp') diff --git a/fsbm.cpp b/fsbm.cpp deleted file mode 100644 index 1daa239..0000000 --- a/fsbm.cpp +++ /dev/null @@ -1,133 +0,0 @@ -#include "config.h" -#include "statistics.hpp" -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define PACKAGE "yo" -#define PACKAGE_STRING "yo mamma" - -// Externs -extern int optind, opterr, optopt; - -volatile bool quit = false; - -void endHandler(int signum) { - quit = true; -} - -void formatBandwidth(double bytesPerSecond, bool showBits) { - const char* prefixes[] = { "", "k", "M", "G", "T", "P", "E", "Z", "Y" }; - - // Calculate the value - double value; - const char* unit; - if (showBits){ - value = bytesPerSecond * 8; - unit = "b/s"; - } - else { - value = bytesPerSecond; - unit = "B/s"; - } - - // Choose the prefix - unsigned prefix = 0; - while (prefix < (sizeof(prefixes) / sizeof(const char*)) && value > 1000.) { - value /= 1000.; - ++prefix; - } - - // Format the string - std::cout << std::setprecision(2) << value << " " << prefixes[prefix] << unit; - -} - -int main(int argc, char **argv) { - int retval = EXIT_SUCCESS; - - // parse the command line - int c; - - bool useBits = false; - int interval = 10 * 100000; - - while ((c = getopt (argc, argv, "bi:hv")) != -1) - switch (c) - { - case 'b': - useBits = true; - break; - case 'i': - // Magic numbers? fuck it that's not a magic number, that's a 'real' number. - interval = atoi(optarg) * 100000; - break; - case 'h': - std::cout << "USAGE: fsbm, -b specifies bits, -i sets interval in 10ths of seconds, 1 sec default\n"; - exit(EXIT_SUCCESS); - break; - case 'v': - std::cout << "Version 1\n"; - exit(EXIT_SUCCESS); - break; - case '?': - std::cerr << "bad flag\n"; - break; - default: - exit(EXIT_FAILURE); - } - - // Catch SIGINT - signal(SIGINT, endHandler); - - - - // Create a socket (for ioctls) - int sock = socket(AF_INET, SOCK_DGRAM, 0); - if (!sock) { - std::cerr << "cannot open socket\n"; - exit(EXIT_FAILURE); - } - - // Initialize curses - - statistics::Reader statisticsReader; - statisticsReader.update(); - while (!quit) { - - // Update the statistics - statisticsReader.update(); - - for (statistics::Reader::Interfaces::const_iterator - interface = statisticsReader.getInterfaces().begin(); - interface != statisticsReader.getInterfaces().end(); - ++interface) { - - std::cout << interface->getName() << " ("; - formatBandwidth(interface->getReceiveSpeed(), useBits); - std::cout << ", "; - formatBandwidth(interface->getTransmitSpeed(), useBits); - std::cout << ")"; - - } - std::cout << "\n"; - usleep(interval); - - - - } - return retval; -} -- cgit v1.2.3