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