add BSD license
[fast-recs-collate.git] / aggregators.h
blob448f330009309d2ce2d3214bf46bdc908146a679
2 #include <stdlib.h>
3 #include <stdbool.h>
5 struct aggregator
7 char *name;
8 char *shortname;
9 size_t data_size;
10 bool (*parse_args_func)(void **config_data, char*, int*, char**);
11 void (*init_func)(void *config_data, void*clump_data);
12 void (*add_func)(void *config_data, void *clump_data, char *ch_data[], double num_data[]);
13 void (*dump_func)(void *config_data, void *clump_data);
14 void (*free_func)(void *config_data, void *clump_data);
17 extern struct aggregator aggregators[];
19 #define RESIZE_ARRAY_IF_NECESSARY(ptr, size, desired_size) \
20 if(size < desired_size) \
21 { \
22 while(size < desired_size) size *= 2; \
23 ptr = realloc(ptr, size*sizeof(*ptr)); \