summaryrefslogtreecommitdiff
path: root/test/testutils/foreach.h
diff options
context:
space:
mode:
authorBo Yang <struggleyb.nku@gmail.com>2009-08-11 11:17:23 +0000
committerBo Yang <struggleyb.nku@gmail.com>2009-08-11 11:17:23 +0000
commitaba54ed61e31df318abdfa165f971a11ce084608 (patch)
tree433c8bcde94fc7a6e6f2e5cbf23842a84db98146 /test/testutils/foreach.h
parent4a8212d783b6d848ac5e23b2a5151caf19ce0a4f (diff)
downloadlibdom-aba54ed61e31df318abdfa165f971a11ce084608.tar.gz
libdom-aba54ed61e31df318abdfa165f971a11ce084608.tar.bz2
Merge the branches/struggleyb/libdom-remain back to trunk.
svn path=/trunk/dom/; revision=9191
Diffstat (limited to 'test/testutils/foreach.h')
-rw-r--r--test/testutils/foreach.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/testutils/foreach.h b/test/testutils/foreach.h
new file mode 100644
index 0000000..75874bc
--- /dev/null
+++ b/test/testutils/foreach.h
@@ -0,0 +1,41 @@
+/*
+ * This file is part of libdom test suite.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com>
+ */
+
+#ifndef domts_foreach_h_
+#define domts_foreach_h_
+
+#include <dom/dom.h>
+
+#include <list.h>
+
+/* The following six functions are used for the XML testcase's
+ <for-each> element.
+ And the <for-each> element can be converted to :
+
+ unsigned int iterator;
+ foreach_initialise_*(list, &iterator);
+ while(get_next_*(list, &iterator, ret)){
+ do the loop work.
+ }
+*/
+
+void foreach_initialise_domnodelist(dom_nodelist *list, unsigned int *iterator);
+void foreach_initialise_list(list *list, unsigned int *iterator);
+void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *iterator);
+
+bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret);
+#define get_next_domnodelist(l, i, r) _get_next_domnodelist( \
+ (dom_nodelist *) (l), (unsigned int *) (i), (dom_node **) (r))
+
+bool get_next_list(list *list, unsigned int *iterator, void **ret);
+
+bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, dom_node **ret);
+#define get_next_domnamednodemap(m, i, r) _get_next_domnamednodemap( \
+ (dom_namednodemap *) (m), (unsigned int *) (i), (dom_node **) (r))
+
+
+#endif