Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
A few more functions usefull in MSG. They should not be written like functions though...
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 17 Dec 2004 05:43:49 +0000 (05:43 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 17 Dec 2004 05:43:49 +0000 (05:43 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@675 48e7efb5-ca39-0410-a469-dd3cf9ba447f

include/xbt/fifo.h
src/xbt/fifo.c

index 0993cac..381c292 100644 (file)
@@ -43,10 +43,15 @@ void xbt_fifo_freeitem(xbt_fifo_item_t);
 
 int xbt_fifo_size(xbt_fifo_t);
 
-/* #define xbt_fifo_foreach(f,i,n,type)                  \ */
-/*    for(i=xbt_fifo_getFirstitem(f);                    \ */
-/*      ((i)?(n=(type)(i->content)):(NULL));             \ */
-/*        i=xbt_fifo_getNextitem(i)) */
+xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l);
+xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i);
+xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i);
+
+
+#define xbt_fifo_foreach(f,i,n,type)                  \
+   for(i=xbt_fifo_getFirstItem(f);                    \
+     ((i)?(n=(type)(xbt_fifo_get_item_content(i))):(NULL));             \
+       i=xbt_fifo_getNextItem(i))
 
 
 #endif                         /* _XBT_FIFO_H */
index b71e213..3084fa7 100644 (file)
@@ -308,4 +308,21 @@ int xbt_fifo_size(xbt_fifo_t f)
   return f->count;
 }
 
+xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l)
+{
+  return l->head;
+}
+
+xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i)
+{
+  if(i) return i->next;
+  return NULL;
+}
+
+xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i)
+{
+  if(i) return i->prev;
+  return NULL;
+}
+