summaryrefslogtreecommitdiff
path: root/multiload/autoscaler.h
blob: d0ae4cd67e963b4920e8d2d56a7364fdd4c9a81a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef MATE_APPLETS_MULTILOAD_AUTOSCALER_H
#define MATE_APPLETS_MULTILOAD_AUTOSCALER_H

#include <glib.h>
#include <time.h>

typedef struct _AutoScaler AutoScaler;

struct _AutoScaler
{
    /* const */ unsigned update_interval;
    /* const */ unsigned floor;
    unsigned max;
    unsigned count;
    time_t last_update;
    float sum;
    float last_average;
};


G_GNUC_INTERNAL void autoscaler_init(AutoScaler *that, unsigned interval, unsigned floor);

G_GNUC_INTERNAL unsigned autoscaler_get_max(AutoScaler *that, unsigned current);


#endif /* MATE_APPLETS_MULTILOAD_AUTOSCALER_H */