00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIOM_CHILDREN_QNAME_ITERATOR_H
00019 #define AXIOM_CHILDREN_QNAME_ITERATOR_H
00020
00026 #include <axiom_node.h>
00027 #include <axiom_namespace.h>
00028 #include <axis2_qname.h>
00029
00030
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035
00036 typedef struct axiom_children_qname_iterator_ops axiom_children_qname_iterator_ops_t;
00037 typedef struct axiom_children_qname_iterator axiom_children_qname_iterator_t;
00038
00050 struct axiom_children_qname_iterator_ops
00051 {
00055 axis2_status_t (AXIS2_CALL *
00056 free_fn)(axiom_children_qname_iterator_t *iterator,
00057 const axis2_env_t *env);
00058
00066 axis2_status_t (AXIS2_CALL *
00067 remove)(axiom_children_qname_iterator_t *iterator,
00068 const axis2_env_t *env);
00069
00076 axis2_bool_t (AXIS2_CALL *
00077 has_next)(axiom_children_qname_iterator_t *iterator,
00078 const axis2_env_t *env);
00079
00083 axiom_node_t* (AXIS2_CALL *
00084 next)(axiom_children_qname_iterator_t *iterator,
00085 const axis2_env_t *env);
00086
00087
00088
00089 };
00090
00091 struct axiom_children_qname_iterator
00092 {
00093 axiom_children_qname_iterator_ops_t *ops;
00094 };
00095
00096 AXIS2_EXTERN axiom_children_qname_iterator_t * AXIS2_CALL
00097 axiom_children_qname_iterator_create(const axis2_env_t *env,
00098 axiom_node_t *current_child,
00099 axis2_qname_t *given_qname);
00100
00101
00102 #define AXIOM_CHILDREN_QNAME_ITERATOR_FREE(iterator, env) \
00103 ((iterator)->ops->free_fn(iterator, env))
00104
00105 #define AXIOM_CHILDREN_QNAME_ITERATOR_REMOVE(iterator, env) \
00106 ((iterator)->ops->remove(iterator, env))
00107
00108 #define AXIOM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(iterator, env) \
00109 ((iterator)->ops->has_next(iterator, env))
00110
00111 #define AXIOM_CHILDREN_QNAME_ITERATOR_NEXT(iterator, env) \
00112 ((iterator)->ops->next(iterator, env))
00113
00116 #ifdef __cplusplus
00117 }
00118 #endif
00119
00120 #endif