]>
jfr.im git - irc/quakenet/newserv.git/blob - graphing/fsample.h
6 typedef u_int32_t fsample_t
;
8 typedef struct fsample fsample
;
10 /* nice loss of type safety here... */
11 typedef void *(*CoreHandlerAddFn
)(void *handler
, void *arg
);
12 typedef void (*CoreHandlerDelFn
)(void *);
14 /* single sample functions */
15 fsample
*fsopen(char *filename
, size_t samples
, CoreHandlerAddFn chafn
, CoreHandlerDelFn chdfn
);
16 void fsclose(fsample
*f
);
17 inline void fsset(fsample
*f
, fsample_t pos
, fsample_t value
);
18 inline fsample_t
fsget(fsample
*f
, fsample_t pos
, fsample_t
*t
);
19 inline fsample_t
fsget_r(fsample
*f
, fsample_t pos
, fsample_t
*t
);
22 typedef fsample_t (*DeriveValueFn
)(struct fsample_m
*v
, int entry
, fsample_t pos
, void *tag
);
24 typedef struct fsample_m_entry
{
31 typedef struct fsample_m
{
33 CoreHandlerAddFn chafn
;
34 CoreHandlerDelFn chdfn
;
35 struct fsample_m_entry entry
[];
38 /* multiple sample functions */
39 fsample_m
*fsopen_m(size_t count
, char *filename
, size_t samples
, CoreHandlerAddFn chafn
, CoreHandlerDelFn chdfn
);
40 void fsclose_m(fsample_m
*f
);
41 int fsadd_m(fsample_m
*f
, char *filename
, size_t freq
, DeriveValueFn derive
, void *tag
);
42 void fsset_m(fsample_m
*f
, fsample_t pos
, fsample_t value
);
43 inline fsample_t
fsget_m(fsample_m
*f
, int entry
, fsample_t pos
, fsample_t
*t
);
44 inline fsample_t
fsget_mr(fsample_m
*f
, int entry
, fsample_t pos
, fsample_t
*t
);
47 fsample_t
fsamean(fsample_m
*f
, int entry
, fsample_t pos
, void *tag
);
48 fsample_t
fsapmean(fsample_m
*f
, int entry
, fsample_t pos
, void *tag
);