Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
adapt the prototypes of the declaration to the prototypes of the definition
[simgrid.git] / include / xbt / heap.h
1 /*      $Id$     */
2
3 /* Copyright (c) 2004 Arnaud Legrand. All rights reserved.                  */
4
5 /* This program is free software; you can redistribute it and/or modify it
6  * under the terms of the license (GNU LGPL) which comes with this package. */
7
8 #ifndef _XBT_HEAP_H
9 #define _XBT_HEAP_H
10
11 #include "xbt/misc.h"
12 #include "xbt/dynar.h" /* void_f_pvoid_t */
13
14 /** @addtogroup XBT_heap
15  *  @brief This section describes the API to generic heap with O(log(n)) access.
16  *
17  *  @{
18  */
19 /* @brief heap datatype */
20 typedef struct xbt_heap *xbt_heap_t;
21
22 XBT_PUBLIC(xbt_heap_t) xbt_heap_new(int num, void_f_pvoid_t * const free_func);
23 XBT_PUBLIC(void) xbt_heap_free(xbt_heap_t H);
24 XBT_PUBLIC(int) xbt_heap_size(xbt_heap_t H);
25
26 XBT_PUBLIC(void) xbt_heap_push(xbt_heap_t H, void *content, double key);
27 XBT_PUBLIC(void*) xbt_heap_pop(xbt_heap_t H);
28
29 XBT_PUBLIC(double) xbt_heap_maxkey(xbt_heap_t H);
30 XBT_PUBLIC(void*) xbt_heap_maxcontent(xbt_heap_t H);
31
32 /* @} */
33 #endif                          /* _XBT_HEAP_H */