diff options
Diffstat (limited to 'LoadAverageMeter.c')
-rw-r--r-- | LoadAverageMeter.c | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/LoadAverageMeter.c b/LoadAverageMeter.c index 1109dab..850f802 100644 --- a/LoadAverageMeter.c +++ b/LoadAverageMeter.c @@ -1,16 +1,19 @@ /* -htop -(C) 2004-2010 Hisham H. Muhammad +htop - LoadAverageMeter.c +(C) 2004-2011 Hisham H. Muhammad Released under the GNU GPL, see the COPYING file in the source distribution for its full text. */ #include "LoadAverageMeter.h" -#include "Meter.h" -#include <curses.h> +#include "CRT.h" + +#include <assert.h> -#include "debug.h" +/*{ +#include "Meter.h" +}*/ int LoadAverageMeter_attributes[] = { LOAD_AVERAGE_FIFTEEN, LOAD_AVERAGE_FIVE, LOAD_AVERAGE_ONE @@ -20,12 +23,15 @@ int LoadMeter_attributes[] = { LOAD }; static inline void LoadAverageMeter_scan(double* one, double* five, double* fifteen) { int activeProcs, totalProcs, lastProc; + *one = 0; *five = 0; *fifteen = 0; FILE *fd = fopen(PROCDIR "/loadavg", "r"); - int total = fscanf(fd, "%lf %lf %lf %d/%d %d", one, five, fifteen, - &activeProcs, &totalProcs, &lastProc); - (void) total; - assert(total == 6); - fclose(fd); + if (fd) { + int total = fscanf(fd, "%32lf %32lf %32lf %32d/%32d %32d", one, five, fifteen, + &activeProcs, &totalProcs, &lastProc); + (void) total; + assert(total == 6); + fclose(fd); + } } static void LoadAverageMeter_setValues(Meter* this, char* buffer, int size) { @@ -60,11 +66,15 @@ static void LoadMeter_display(Object* cast, RichString* out) { RichString_write(out, CRT_colors[LOAD], buffer); } -MeterType LoadAverageMeter = { +MeterClass LoadAverageMeter_class = { + .super = { + .extends = Class(Meter), + .delete = Meter_delete, + .display = LoadAverageMeter_display, + }, .setValues = LoadAverageMeter_setValues, - .display = LoadAverageMeter_display, - .mode = TEXT_METERMODE, - .items = 3, + .defaultMode = TEXT_METERMODE, + .maxItems = 3, .total = 100.0, .attributes = LoadAverageMeter_attributes, .name = "LoadAverage", @@ -72,11 +82,14 @@ MeterType LoadAverageMeter = { .caption = "Load average: " }; -MeterType LoadMeter = { +MeterClass LoadMeter_class = { + .super = { + .extends = Class(Meter), + .delete = Meter_delete, + .display = LoadMeter_display, + }, .setValues = LoadMeter_setValues, - .display = LoadMeter_display, - .mode = TEXT_METERMODE, - .items = 1, + .defaultMode = TEXT_METERMODE, .total = 100.0, .attributes = LoadMeter_attributes, .name = "Load", |