+XBT_PUBLIC(xbt_heap_t) xbt_heap_new(int init_size, void_f_pvoid_t const free_func);
+XBT_PUBLIC(void) xbt_heap_free(xbt_heap_t H);
+XBT_PUBLIC(int) xbt_heap_size(xbt_heap_t H);
+
+XBT_PUBLIC(void) xbt_heap_push(xbt_heap_t H, void *content, double key);
+XBT_PUBLIC(void *) xbt_heap_pop(xbt_heap_t H);
+XBT_PUBLIC(void) xbt_heap_rm_elm(xbt_heap_t H, void *content, double key);
+
+XBT_PUBLIC(double) xbt_heap_maxkey(xbt_heap_t H);
+XBT_PUBLIC(void *) xbt_heap_maxcontent(xbt_heap_t H);
+XBT_PUBLIC(void) xbt_heap_set_update_callback(xbt_heap_t H, void (*update_callback) (void*, int));
+XBT_PUBLIC(void *) xbt_heap_remove(xbt_heap_t H, int i);
+XBT_PUBLIC(void ) xbt_heap_update(xbt_heap_t H, int i, double key);
+
+/* @} */
+SG_END_DECL()
+
+#ifdef __cplusplus
+namespace simgrid {
+namespace xbt {
+ inline void destroy(xbt_heap_t h)
+ {
+ xbt_heap_free(h);
+ }
+}
+}
+#endif
+
+#endif /* _XBT_HEAP_H */