Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add xbt_fifo_search(), to search an item with a user-provided comparison function
[simgrid.git] / include / xbt / fifo.h
index a907398..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()
 
@@ -23,14 +24,15 @@ SG_BEGIN_DECL()
  */
 /** \brief  Bucket structure 
 */
-     typedef struct xbt_fifo_item *xbt_fifo_item_t;
+typedef struct xbt_fifo_item *xbt_fifo_item_t;
 
 /** \brief  FIFO structure
 */
-     typedef struct xbt_fifo *xbt_fifo_t;
+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
@@ -108,4 +111,4 @@ XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_getPrevItem(xbt_fifo_item_t i);
 
 
 SG_END_DECL()
-#endif /* _XBT_FIFO_H */
+#endif                          /* _XBT_FIFO_H */