Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid into...
[simgrid.git] / include / xbt / fifo.h
index 81762b5..aaf2a37 100644 (file)
@@ -7,6 +7,7 @@
 #ifndef _XBT_FIFO_H
 #define _XBT_FIFO_H
 #include "xbt/misc.h"           /* SG_BEGIN_DECL */
+#include "xbt/function_types.h" /* int_f_pvoid_pvoid_t */
 
 SG_BEGIN_DECL()
 
@@ -31,6 +32,7 @@ typedef struct xbt_fifo *xbt_fifo_t;
 
 XBT_PUBLIC(xbt_fifo_t) xbt_fifo_new(void);
 XBT_PUBLIC(void) xbt_fifo_free(xbt_fifo_t);
+XBT_PUBLIC(void) xbt_fifo_reset(xbt_fifo_t);
 /** @} */
 
 /** @defgroup XBT_fifo_perl Fifo perl-like functions
@@ -44,6 +46,7 @@ XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_unshift(xbt_fifo_t, void *);
 XBT_PUBLIC(void *) xbt_fifo_shift(xbt_fifo_t);
 XBT_PUBLIC(int) xbt_fifo_size(xbt_fifo_t);
 XBT_PUBLIC(int) xbt_fifo_is_in(xbt_fifo_t, void *);
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_search_item(xbt_fifo_t f, int_f_pvoid_pvoid_t cmp_fun, void *closure);
 /** @} */
 
 /** @defgroup XBT_fifo_direct Direct access to fifo elements
@@ -52,10 +55,10 @@ XBT_PUBLIC(int) xbt_fifo_is_in(xbt_fifo_t, void *);
  *  @{
  */
 
-XBT_INLINE XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_new_item(void);
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_new_item(void);
 XBT_PUBLIC(void) xbt_fifo_set_item_content(xbt_fifo_item_t, void *);
 XBT_PUBLIC(void *) xbt_fifo_get_item_content(xbt_fifo_item_t);
-XBT_INLINE XBT_PUBLIC(void) xbt_fifo_free_item(xbt_fifo_item_t);
+XBT_PUBLIC(void) xbt_fifo_free_item(xbt_fifo_item_t);
 
 XBT_PUBLIC(void) xbt_fifo_push_item(xbt_fifo_t, xbt_fifo_item_t);
 XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_pop_item(xbt_fifo_t);
@@ -66,10 +69,8 @@ XBT_PUBLIC(int) xbt_fifo_remove(xbt_fifo_t, void *);
 XBT_PUBLIC(int) xbt_fifo_remove_all(xbt_fifo_t, void *);
 XBT_PUBLIC(void) xbt_fifo_remove_item(xbt_fifo_t, xbt_fifo_item_t);
 
-XBT_INLINE XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_get_first_item(xbt_fifo_t
-                                                               l);
-XBT_INLINE XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_get_last_item(xbt_fifo_t
-                                                              l);
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_get_first_item(xbt_fifo_t l);
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_get_last_item(xbt_fifo_t l);
 XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_get_next_item(xbt_fifo_item_t i);
 XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_get_prev_item(xbt_fifo_item_t i);