diff options
Diffstat (limited to 'test/testutils/foreach.h')
-rw-r--r-- | test/testutils/foreach.h | 41 |
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 |