axiom_children_qname_iterator.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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 /* AXIOM_CHILDREN_QNAME_ITERATOR_H */

Generated on Tue Oct 3 22:35:46 2006 for Axis2/C by  doxygen 1.4.7