#ifndef GSTAT_H
#define GSTAT_H TRUE

typedef struct GSTAT {int t, v; struct GSTAT *next;} Gstat;
typedef struct GREC {int t, id, value, filler;} Grec;
#define MAXID 200
Gstat *gstat_get(int id);

void gstat_init(char *name, int (*emsg)(const char *fmt,...) );
int gstat_add(char *name, int value);
void gstat_rewrite(void);
void gstat_send(int *at, void (*sendfn)(char *s));
void gstat_sendall(int t, void (*sendfn)(char *s));
Gstat *gstat_compress(Gstat *gin);
int gaddon(Gstat **a, int t, int v);
int gstat_load(void);
int gstat_find(char *s);
int gstat_add(char *s, int id);
int gstat_findadd(char *s);
int gstat_add_name(char *s, int id, int isloading);
void gstat_xsend(void);
void gstat_xadd(char *name, int val);

void gstat_send_names(void (*sendfn)(char *s));

Gstat *grev(Gstat *g);
#endif
