Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
rationalize the iterators over dynar
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 28 Jan 2004 18:58:09 +0000 (18:58 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 28 Jan 2004 18:58:09 +0000 (18:58 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@10 48e7efb5-ca39-0410-a469-dd3cf9ba447f

include/dynar.h

index 3d2829b..7fae10e 100644 (file)
@@ -50,9 +50,11 @@ void         gras_dynar_shift     (gras_dynar_t *dynar, void *dst);
 void         gras_dynar_map(const gras_dynar_t *dynar, void_f_pvoid_t *operator);
 
 /* cursor functions */
 void         gras_dynar_map(const gras_dynar_t *dynar, void_f_pvoid_t *operator);
 
 /* cursor functions */
-void _gras_dynar_first     (const gras_dynar_t *dynar, int *cursor);
-int  _gras_dynar_next      (const gras_dynar_t *dynar,
-                          int  *cursor, void *whereto);
+void gras_dynar_cursor_first    (const gras_dynar_t *dynar, int *cursor);
+void gras_dynar_cursor_step     (const gras_dynar_t *dynar,
+                                int  *cursor);
+int  gras_dynar_cursor_get      (const gras_dynar_t *dynar,
+                                int  *cursor, void *whereto);
 
 /**
  * gras_dynar_foreach:
 
 /**
  * gras_dynar_foreach:
@@ -71,10 +73,15 @@ int  _gras_dynar_next      (const gras_dynar_t *dynar,
  * }</programlisting>
  */
 #define gras_dynar_foreach(_dynar,_cursor,_data) \
  * }</programlisting>
  */
 #define gras_dynar_foreach(_dynar,_cursor,_data) \
-       for (_gras_dynar_first(_dynar,&_cursor);     \
-           _gras_dynar_next(_dynar,&_cursor,&_data); \
-           )
-
+       for (gras_dynar_cursor_first(_dynar,&_cursor)      ; \
+           gras_dynar_cursor_get(_dynar,&_cursor,&_data) ; \
+            gras_dynar_cursor_step(_dynar,&_cursor)         )
+/*
+       for (gras_dynar_length(_dynar) && (_gras_dynar_cursor_first(_dynar,&_cursor),      \
+                                         1);     \
+           gras_dynar_length(_dynar) && gras_dynar_cursor_get(_dynar,&_cursor,&_data); \
+            gras_dynar_cursor_step(_dynar,&_cursor))
+*/
 void gras_dynar_cursor_rm(gras_dynar_t * dynar,
                          int          * const cursor);
 
 void gras_dynar_cursor_rm(gras_dynar_t * dynar,
                          int          * const cursor);