1 /* Authors: Arnaud Legrand */
3 /* This program is free software; you can redistribute it and/or modify it
4 under the terms of the license (GNU LGPL) which comes with this package. */
9 typedef struct xbt_heap *xbt_heap_t;
11 /* The following two definitions concern the type of the keys used for
12 the heaps. That should be handled via configure (FIXME). */
13 typedef long double xbt_heap_float_t;
14 #define XBT_HEAP_FLOAT_T "%Lg" /* for printing purposes */
17 /* pointer to a function freeing something (should be common to all .h : FIXME) */
18 typedef void (void_f_pvoid_t) (void*);
20 xbt_heap_t xbt_heap_new(int num, void_f_pvoid_t free_func);
21 void xbt_heap_free(xbt_heap_t H);
23 void xbt_heap_push(xbt_heap_t H, void *content, xbt_heap_float_t key);
24 void *xbt_heap_pop(xbt_heap_t H);
26 xbt_heap_float_t xbt_heap_maxkey(xbt_heap_t H);
27 void *xbt_heap_maxcontent(xbt_heap_t H);
29 #endif /* _XBT_HEAP_H */